其实我想知道done
和router.navigate(['User'])
之间的区别。在我的Angular2项目中,两者都做同样的事情。
感谢提前
答案 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
)。