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

时间:2018-09-11 10:58:24

标签: angular angular2-directives ngoninit

<div *ngIf="variable">
    <directive></directive>
</div>

在上面的代码段(角度2)中,我将变量从true更改为false,因此,当我再次尝试将变量设置为true时,伪指令将不会呈现。 {1}}从指令中又被调用一次。

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

为什么每次变量值从false变为ngOnInit true时都调用我的ngOnInit指令。

任何建议。

1 个答案:

答案 0 :(得分:2)

使用*ngIf代替[hidden]="variable"

当您使用*ngIf时,您将从DOM中删除该元素,一旦再次将其切换为true,它将再次呈现指令。

此外,我建议您查看隐藏 docs可能存在的CSS问题。