<div *ngIf="variable">
<directive></directive>
</div>
在上面的代码片段(Angular 2)中,我将变量从true
更改为false
,因此指令不会呈现,然后当我尝试再次将变量设置为true时,再次从指令调用onInit
。
我希望在第一次加载指令时调用ngOnInit方法。
为什么每次变量值从false ngOnInit变为true时都会调用ngOnInit of directive。
有什么建议。
而不是使用*ngIf
使用[hidden]="variable"
。
当你使用*ngIf
时,你要从DOM
中删除元素,一旦你再次将它切换为true,它将再次渲染指令。
此外,我建议你看看隐藏的docs可能的CSS问题。