这是我的路由模块。
input[type="radio"] { display:none;}
通过这样做,我需要在@NgModule({
imports: [
RouterModule.forChild([
{
path: "",
component: AdminComponent,
children: [
{
path: "users",
component: ParentComponent
children: [
{
path: ":id",
component: AnotherComponent
}
]
}
]
}]
)
],
exports: [
RouterModule
]
})
export class AdminRoutingModule {}
ParentComponent
中指定。这里唯一的问题是<router-outlet></router-outlet>
不是AnotherComponent
的一部分,这是两个不同的页面。因此,更好的结构可能是让它们处于同一水平。我之所以选择该结构是因为ParentComponent
只能从AnotherComponent
到达。在这里做什么是最明智的事情?
答案 0 :(得分:1)
正如您在问题中已经提到的,您的router-config应如下所示:
RouterModule.forChild([{
path: "",
component: AdminComponent,
children: [
{
path: "users",
component: ParentComponent
},
{
path: "users/:id", /* OR WHATEVER .. */
component: AnotherComponent,
/* OPTIONAL GUARD */
canActivate: [YourRouteGuard]
}
]
}])
您放置routerLink
的方式和位置是您的一部分! :)
如果你想&#34;保护&#34;路线,您应该使用Guards
!
https://angular.io/docs/ts/latest/guide/router.html#!#milestone-5-route-guards
答案 1 :(得分:0)
将AnotherComponent置于与ParentComponent相同的级别不会阻止仅从ParentComponent访问AnotherComponent。