所以,我有一个非常笨重的混合应用程序,使用angularjs 1.7和angular5.x。 我正在使用ngUpgrade模块来运行这两个应用程序,但是遇到一个问题,如果我使用href导航到其他路由(在angularjs路由器中定义),则摘要周期已经在进行中,这会破坏整个应用程序而且没有任何负载(我想这时角度在区域外运行)。 我可以使用$ timeout解决其他事件(点击等)的问题,但我真的希望href现在可以正常工作。
core.js:1449 ERROR Error: [$rootScope:inprog] $digest already in progress
https://errors.angularjs.org/1.7.3/$rootScope/inprog?p0=%24digest
at angular.js:138
at h (angular.js:19720)
at f.$digest (angular.js:19050)
at static.js:1508
at t.object.i [as _next] (core.js:4354)
at t.__tryOrUnsub (Subscriber.js:242)
at t.next (Subscriber.js:189)
at t._next (Subscriber.js:129)
at t.next (Subscriber.js:93)
at t.next (Subject.js:55)
答案 0 :(得分:0)
有两种方法引导混合应用程序:
UpgradeModule-在Angular区域中引导AngularJS(v1)和Angular(v6)框架
DowngradeModule-将AngularJS引导到Angular区域之外,并使两个变更检测系统保持独立。
我在$digest
上遇到了相同的错误,并且尝试了两种方法。为了避免$digest
和性能方面的所有问题,您应该使用DowngradeModule
。
查看:https://github.com/angular/angular/issues/19299和https://angular.io/guide/upgrade-performance