角度错误:递归调用ApplicationRef.tick

问题描述 投票:0回答:1

我通过在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块中陷入困境而不是最后因此抛出递归错误。第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()方法的这种递归过程?

提前致谢

javascript angular
1个回答
0
投票

对我来说另一个有效的解决方案:使用ChangeDetectorRef而不是ApplicationRef

constructor(private ref:ChangeDetectorRef) { }

somethingChanged() {
    this.ref.detectChanges();
}
© www.soinside.com 2019 - 2024. All rights reserved.