我的 angular2路由器 Routes
配置存在问题,resolve
执行两次虽然只定义了一次。
这是我的Routes
定义:
export const AppRoutes: Routes = [
{path: '', component: HomeComponent},
{
path: 'dashboard',
component: DashboardComponent,
children: [
{
path: '',
component: DashboardSummaryComponent,
resolve: {
userAccount: UserAccountResolve
}
},
...
当我导航到'/dashboard'
时,如下所示:
this.router.navigate(['/dashboard'])
DashboardSummaryComponent
(即UserAccountResolve
)的决心执行两次......
有人可以解释一下原因吗?这是预期的吗?
编辑1 :必须注意(这似乎与问题无关)UserAccountResolve
实际上是 http 来电。此外,第一个调用(失败的调用)会导致401
错误。
编辑2 :问题可能与使用子组件有关,但我无法在angular 2文档中找到有关子/父组件如何处理结算的相关信息。 ..
答案 0 :(得分:1)
可能与Router 3.2.0 - Providers instantiated twice
有关尝试将@ angular / router降级为~3.1.0
答案 1 :(得分:1)
此问题已在Angular 4.0中修复