如何记录正在进行的ngRoute请求?

时间:2017-10-01 20:13:49

标签: javascript angularjs ngroute

我正在将一个尺寸合适的Angular 1.6应用程序从旧的构建系统移植到Yarn / Webpack上。

我们正在使用标准的ngRoute / large promise链进行路由。因为我一直在努力获得所有的进口和依赖权,我一直收到这个错误:

  

警告:尝试不止一次加载角度。

根据this SO post,有各种各样的潜在原因。但帮助我获得应用程序的某些页面工作的那个是解决所有templateUrl是正确的。两者都在模块定义中,以及在任何模板中使用ng-include时。

事实上,这些组件链中的一些是巨大的。有条件的 - 包括所有地方。因此,如果不必在大承诺链的末尾手动搜索这些巨大的组件树,当任何东西不匹配并在此处点击时,它将非常有用:

.otherwise({
  redirectTo: '/',
  template: '<public-home></public-home>'
});

我想获得有关尝试的内容的反馈,如果可能的话,我希望获得该尝试的来源。这有助于我找到错误所包含的位置。

所以我的问题是无法识别未正确解决的路由请求,我希望能够记录或记录有关路由的反馈。

所以希望这足够具体,这是我目前解决问题的最佳猜测。但是,如果有更好的方法来解决角度重新加载本身的业务,我全都听见了!

1 个答案:

答案 0 :(得分:1)

Angular 1 如果您不想将手表放在特定控制器中,可以在Angular app run()

中添加整个应用程序的手表
constructor(router:Router) {
  router.events.subscribe(event:Event => {
    if(event instanceof NavigationStart) {
    }
    // NavigationEnd
    // NavigationCancel
    // NavigationError
    // RoutesRecognized
  });
}

for angular 2 new router

import {Router} from 'angular2/router';

class MyComponent {
  constructor(router:Router) {
    router.subscribe(...)
  }
}

<强>旧

注入路由器并订阅路由更改事件

NavigationStart

注意

对于新路由器,请勿忘记从router模块中导入import { Router, NavigationStart } from '@angular/router';

instanceof

因为如果你没有导入它NavigationStart is not defined将无效,错误paste将会上升。

另见