与混合应用一起使用时,Angularjs会消化进行中错误

时间:2018-09-17 01:07:07

标签: javascript angularjs angular ng-upgrade

所以,我有一个非常笨重的混合应用程序,使用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)

1 个答案:

答案 0 :(得分:0)

有两种方法引导混合应用程序:

  1. UpgradeModule-在Angular区域中引导AngularJS(v1)和Angular(v6)框架

  2. DowngradeModule-将AngularJS引导到Angular区域之外,并使两个变更检测系统保持独立。

我在$digest上遇到了相同的错误,并且尝试了两种方法。为了避免$digest和性能方面的所有问题,您应该使用DowngradeModule

查看:https://github.com/angular/angular/issues/19299https://angular.io/guide/upgrade-performance