我需要在运行时动态创建多个组件的实例.
我在互联网上找到了几个例子,包括StackOverflow和angular.io页面本身.
但是当我为组件模型赋值时,总是会收到异常ExpressionChangedAfterItHasBeenCheckedError.
即使是此功能的专用示例也会 引发相同的异常: Angular.io文章Plunker
错误:ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后发生了变化.上一个值:'undefined'.当前价值:'Bombasto'.看起来这个视图是在其父级及其子级被脏检查后创建的.它是在变更检测钩子中创建的吗?
我应该忽略这个还是可以/应该修复?
小智 9
这是因为您正在改变组件状态ngAfterViewInit.请参阅此处讨论行为的问题.
在您的情况下,您可以移动初始创建ngOnInit.
ngOnInit() {
this.loadComponent();
this.getAds();
}
Run Code Online (Sandbox Code Playgroud)
https://plnkr.co/edit/vAbkBIqrhpuuWadO4zGD?p=preview
在更一般的情况下
使用
this._changeDetectionRef.detectChanges();
Run Code Online (Sandbox Code Playgroud)
在更新到较晚组件状态的方法的末尾,
...不要忘记添加
private _changeDetectionRef : ChangeDetectorRef
Run Code Online (Sandbox Code Playgroud)
作为拥有您的方法的组件的构造函数的参数。
请参阅此处的讨论
| 归档时间: |
|
| 查看次数: |
3561 次 |
| 最近记录: |