父元素隐藏再显示时多次调用Directive的onInit方法

Directive's onInit method is called many times when the parent element is hidden and shown again

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

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

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

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

任何建议。

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

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

此外,我建议您查看 隐藏 docs 以了解可能的 CSS 问题。