通过在Zone JS外部运行另一个更改检测过程,我成功地显式发出了Event。
尽管正在运行更改检测,但递归地将错误:ApplicationRef.tick称为错误。
查看其API https://github.com/angular/angular/blob/4.4.3/packages/core/src/application_ref.ts#L347-L417
tick()方法被卡在Try-Catch块中,而不会到达Final,因此抛出了递归错误。 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()方法的递归过程?

提前致谢

最佳答案

对我来说另一个可行的解决方案:使用ChangeDetectorRef代替ApplicationRef

constructor(private ref:ChangeDetectorRef) { }

somethingChanged() {
    this.ref.detectChanges();
}

关于javascript - Angular 错误:ApplicationRef.tick递归调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46444102/

10-09 21:41