我认为@ angular / core中的'ApplicationRef_.prototype.tick()'需要在角度2 RC4中正确更新DOM,(以及正确的早期版本)
在从5分钟快速启动示例(https://angular.io/guide/quickstart)创建的角度2混合设置中,调用此方法,但似乎最初仅称为有限次数。
我遇到混合设置中的变更检测问题(ng1& ng2使用upgradeAdapter一起工作),并且只在某些服务器中出现问题。这使我深入研究变化检测。
我的问题是:什么可能导致'ApplicationRef_.prototype.tick()'被定期调用?似乎在我的组件工作的情况下,这个方法被定期调用,而不是像5分钟快速启动那样有限的时间。也许我需要强制确保它能够稳定运行。
很抱歉没有吸尘器,因为我无法生成当前情况的简化版本
谢谢!
答案 0 :(得分:-1)
事实证明ng2升级适配器RC.4存在错误 - > 2.0.1 final。
在upgrade_adapter.ts
:
ngZone.onMicrotaskEmpty.subscribe({
next: (_: any) => ngZone.runOutsideAngular(() => rootScope.$evalAsync())
});
如果改为:
ngZone.onMicrotaskEmpty.subscribe({
next: (_: any) => ngZone.run(() => rootScope.$evalAsync())
});
变化检测似乎有效。
一个缺点是:这将重新引入无限$rootScope.$digest
(https://github.com/angular/angular/issues/6385)