ng-content内部的组件被实例化两次

时间:2019-07-11 09:11:44

标签: angular ngoninit angular2-ngcontent ng-content angular-component-life-cycle

我正在使用Angular 4,并且有一个组件“ X”,它基本上是一个折叠展开组件。它包装提供给它的所有内容,并在单击时折叠并展开它。看起来与下面的类似。

<div>
    // some X related DOM here
    <ng-content></ng-content>
</div>

我还有另一个组件“ Y”,我将其放置在“ X”组件中,例如:

<x>
   <y [someAttribute]="someAttribute"> </y>
</x>

现在我已经意识到'Y'组件被实例化了两次,即构造函数ngOnInit,ngOnChanges两次都被调用了。

使用<ng-content>是否会出现问题(我仍然不确定)。如果是,那么我该如何处理才能只调用一次“ Y”组件,因为我只需要将组件“ Y”包装在“ X”中即可。

编辑:我错过了前面添加的问题,即我正在使用ngxPermissions库有条件地显示“”。所以它更像是:

<x>
   <ng-template [ngxPermissionsOnly]="validPermissions">
       <y [someAttribute]="someAttribute"> </y>
   </ng-template>
</x>

0 个答案:

没有答案