【问题标题】:Angular 2 Childroute not resolvedAngular 2 Childroute 未解决
【发布时间】:2016-12-13 12:58:16
【问题描述】:

我在 Angular 2 测试应用程序中有以下路线定义

 RouterModule.forRoot([
        { path:'app/projects/:id',component:ProjectDetailComponent, pathMatch:'full',
            children:[
              { path:'',component:ProjectDetailOverviewComponent},
              { path:'settings',component:ProjectSettingsComponent},                
            ]
           },
        { path: '', redirectTo: 'home', pathMatch: 'full' },
        { path: '**', redirectTo: 'home' },  
    ])

调用{host}/app/projects/2321 可以正常工作。

但是当我打电话给{host}/app/projects/2321/settings 时,我会被重定向到我的默认路由。

视图的 html 几乎都是空的。 ProjectDetailComponent 只包含<router-outlet>,其他视图只包含一个简单的字符串。

我错过了什么?

【问题讨论】:

  • 错误是“递归过多”吗?
  • 控制台没有错误

标签: javascript angular angular2-routing


【解决方案1】:

当您调用{host}/app/projects/2321/settings 时,我认为它与映射到组件ProjectDetailOverviewComponent 的第一条路由匹配,因此请尝试通过更改您的路由配置进行检查,如下所示:

RouterModule.forRoot([
{
  path: 'app/projects/:id',
  component: ProjectDetailComponent,
  children: [
          { path:'',component:ProjectDetailOverviewComponent, pathMatch:'full'},
          { path:'settings',component:ProjectSettingsComponent},                
        ]
  },
  { path: '', redirectTo: 'home', pathMatch: 'full' },
  { path: '**', redirectTo: 'home' },  
])

【讨论】:

  • 通过从主 app/projects/:id 路由配置中删除 pathMatch:'full', 来检查。
  • 是的,就是这样,考虑它是合乎逻辑的。路线不匹配,因为它不准确。
猜你喜欢
  • 2017-11-16
  • 2016-10-26
  • 2018-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-10
  • 2016-12-25
  • 2018-02-05
相关资源
最近更新 更多