首页 > 解决方案 > 为什么更改检测不会在嵌套动态组件上触发

问题描述

我在使用内容投影对嵌套动态组件进行更改检测时遇到问题。更改检测不会在子组件上自动触发,我必须为每个操作添加手动更改检测。

这里的一个例子:https ://stackblitz.com/edit/angular-ivy-k2z661?file=src%2Fapp%2Fapp.component.ts

如您所见,如果单击按钮,则什么都不会显示,但是在this.cdr.detectChanges()add() 函数上添加行时,会显示内容。另外,你可以注意到我没有使用 ChangeDetectionStrategy.OnPush

有没有办法在不到处添加手动更改检测的情况下实现这一目标?

标签: angularangular-dynamic-componentsangular-content-projection

解决方案


所以我终于找到了发生了什么。子视图需要手动附加到 appref。所以

private appRef: ApplicationRef

需要添加到构造函数,然后,附加子视图:

    this.appRef.attachView(refChild.hostView);

我已经更新了 Stackblitz。


推荐阅读