Angular2:配置 'name' 与现有路由 'name' 冲突

Angular2: Configuration 'name' conflicts with existing route 'name'

我有一些组件,其中一个带有动态路由。

动态路由添加为,

let config = [];
for(let i = 0; i < this.pages.length; i++) {
  config.push({
    path: this.pages[i].slug, 
    name : this.pages[i].name, 
    component: AnotherComponent,
  });
}
router.config(config);

每当加载动态路由的组件不止一次时,都会重新配置路由,导致配置冲突。

这是 plunk,动态路由加载了 link users,离开用户后再次点击 users 记录下面显示的错误控制台。

我该如何解决?感谢您对此进行调查。

添加前检查路由是否存在

for(let i = 0; i < this.pages.length; i++) {
  if(!router.registry.hasRoute(this.pages[i].name, UsersComponent)) {
    config.push({
      path: this.pages[i].slug, 
      name : this.pages[i].name, 
      component: PersonComponent,
      data : {
        name : this.pages[i].name,
        slug : this.pages[i].slug
      }
    });
  }
}

Plunker