javascript - 递归调用 Angular 错误 : ApplicationRef. 刻度

标签 javascript angular

我通过在 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 block 中并且不会进入 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. 刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46444102/

相关文章:

javascript - 我如何通过await访问解析数组中的2个元素

javascript - Image Grid Div 不会显示在点击上

javascript - 菜单图标的 css 中的边距顶部不适用于特定的 px

php - 如何使用 javascript 中的表单验证重定向到 PHP 网页,并使用 MySQL 查询重定向到另一个页面

javascript - 将两个数字与 typescript 相乘,读取 NaN

javascript - 如何确保对观察者的订阅调用最初收到最新值?

angular - Cypress 仍停留在 Chrome stable 80 上

javascript - 使用 innerHTML 时换行

angular - 如何在 Angular HTTPClient 中处理流

javascript - 嵌套折叠