Angular2中router.navigate和router.parent.navigate有什么区别?

时间:2016-03-24 13:14:26

标签: javascript angularjs angular angular2-routing

其实我想知道donerouter.navigate(['User'])之间的区别。在我的Angular2项目中,两者都做同样的事情。

感谢提前

1 个答案:

答案 0 :(得分:1)

您尝试导航到当前路由器(router.navigate(['User'])中定义的路由或父路由器中定义的路由(router.parent.navigate(['User']))。

事实上,您可以定义多个级别的路线。如果在与路由器关联的路由配置中定义了User路由,则router.navigate(['User'])将起作用。如果它在与父路由器关联的路由配置中,则router.parent.navigate(['User'])将起作用。

例如,如果您有两个级别并希望导航到根级别,则可以使用此:

router.navigate(['/User']);

示例

  • AppComponent组件(应用程序组件)中:

    @RouteConfig([
      {
        path: '/sub/...',
        name: 'SubComponent',
        component: SubComponent,
        useAsDefault: true
      },
      {path: '/user', name: 'User', component: UserComponent}
      {path: '/other', name: 'Other', component: OtherComponent}
    ])
    
  • SubComponent组件中:

    @RouteConfig([
      {path: '/test',   name: 'Test',     component: TestComponent}
    ])
    

在这种情况下,router.parent.navigate(['User'])将适用于SubComponent组件的路由中定义的组件(例如:TestComponent)。 router.navigate(['User'])适用于AppComponent组件路由中定义的组件(例如:OtherComponent)。