0

所以,我有一个使用 angularjs 1.7 和 angular 5.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)
4

1 回答 1

0

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

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

  2. DowngradeModule - 在 Angular 区域之外引导 AngularJS,并保持两个变更检测系统分开。

我有同样的错误,$digest并尝试了两种方式。为了避免所有问题$digest和性能,您应该使用DowngradeModule.

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

于 2018-09-19T07:48:24.827 回答