我正在将一个尺寸合适的Angular 1.6应用程序从旧的构建系统移植到Yarn / Webpack上。
我们正在使用标准的ngRoute / large promise链进行路由。因为我一直在努力获得所有的进口和依赖权,我一直收到这个错误:
警告:尝试不止一次加载角度。
根据this SO post,有各种各样的潜在原因。但帮助我获得应用程序的某些页面工作的那个是解决所有templateUrl是正确的。两者都在模块定义中,以及在任何模板中使用ng-include时。
事实上,这些组件链中的一些是巨大的。有条件的 - 包括所有地方。因此,如果不必在大承诺链的末尾手动搜索这些巨大的组件树,当任何东西不匹配并在此处点击时,它将非常有用:.otherwise({
redirectTo: '/',
template: '<public-home></public-home>'
});
我想获得有关尝试的内容的反馈,如果可能的话,我希望获得该尝试的来源。这有助于我找到错误所包含的位置。
所以我的问题是无法识别未正确解决的路由请求,我希望能够记录或记录有关路由的反馈。
所以希望这足够具体,这是我目前解决问题的最佳猜测。但是,如果有更好的方法来解决角度重新加载本身的业务,我全都听见了!
答案 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
将会上升。
另见