当隐藏父元素并再次显示时,会多次调用指令的onInit方法

问题描述 投票:0回答:1
<div *ngIf="variable">
    <directive></directive>
</div>

在上面的代码片段(Angular 2)中,我将变量从true更改为false,因此指令不会呈现,然后当我尝试再次将变量设置为true时,再次从指令调用onInit

我希望在第一次加载指令时调用ngOnInit方法。

为什么每次变量值从false ngOnInit变为true时都会调用ngOnInit of directive。

有什么建议。

angular angular2-directives ngoninit
1个回答
2
投票

而不是使用*ngIf使用[hidden]="variable"

当你使用*ngIf时,你要从DOM中删除元素,一旦你再次将它切换为true,它将再次渲染指令。

此外,我建议你看看隐藏的docs可能的CSS问题。

© www.soinside.com 2019 - 2024. All rights reserved.