Angular2组织路由模块

时间:2017-01-31 10:23:10

标签: angular typescript

这是我的路由模块。

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到达。在这里做什么是最明智的事情?

2 个答案:

答案 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。