我通过在Zone JS之外运行另一个更改检测过程,成功地发出了事件
虽然更改检测正在运行,但错误:递归调用ApplicationRef.tick 错误。
查看其API https://github.com/angular/angular/blob/4.4.3/packages/core/src/application_ref.ts#L347-L417
tick()方法在Try-Catch块中陷入困境而不是最后因此抛出递归错误。第563-576行
这是我在Application.tick()
中调用的方法public listenTeamOverview(assetName: string) {
console.log('parent : ' + assetName);
console.log('assetClass= ' + this.assetClass);
this.assetClass = assetName;
this.application.tick();
// setTimeout(function(app) {
// app.tick();
// }, 2000, this.application);
}
是否只想从概念上理解如何摆脱tick()方法的递归过程?
先谢谢
答案 0 :(得分:0)
另一个适合我的解决方案:使用ChangeDetectorRef代替ApplicationRef
constructor(private ref:ChangeDetectorRef) { }
somethingChanged() {
this.ref.detectChanges();
}