为什么变化检测不会在嵌套动态组件上触发
Why is change detection not triggering on nested dynamic component
我在使用内容投影对嵌套动态组件进行更改检测时遇到问题。
更改检测不会在子组件上自动触发,我必须为每个操作添加手动更改检测。
举个例子:https://stackblitz.com/edit/angular-ivy-k2z661?file=src%2Fapp%2Fapp.component.ts
如您所见,如果单击该按钮,则不会显示任何内容,但是在 add() 函数上添加 this.cdr.detectChanges()
行时,会显示内容。
另外,你可以注意到我没有使用
ChangeDetectionStrategy.OnPush
有没有办法在不到处添加手动更改检测的情况下实现这一点?
所以我终于找到了发生了什么事。子视图需要手动附加到 appref。所以
private appRef: ApplicationRef
需要添加到构造函数中,然后附加子视图:
this.appRef.attachView(refChild.hostView);
我更新了 Stackblitz。
我在使用内容投影对嵌套动态组件进行更改检测时遇到问题。 更改检测不会在子组件上自动触发,我必须为每个操作添加手动更改检测。
举个例子:https://stackblitz.com/edit/angular-ivy-k2z661?file=src%2Fapp%2Fapp.component.ts
如您所见,如果单击该按钮,则不会显示任何内容,但是在 add() 函数上添加 this.cdr.detectChanges()
行时,会显示内容。
另外,你可以注意到我没有使用
ChangeDetectionStrategy.OnPush
有没有办法在不到处添加手动更改检测的情况下实现这一点?
所以我终于找到了发生了什么事。子视图需要手动附加到 appref。所以
private appRef: ApplicationRef
需要添加到构造函数中,然后附加子视图:
this.appRef.attachView(refChild.hostView);
我更新了 Stackblitz。