【发布时间】:2017-01-25 12:40:08
【问题描述】:
我希望能够对某些路由使用相同的路由器插座。
路由设置(简化):
export const routes: Routes = [
{
path: 'app', component: AppComponent,
children: [
path: 'category/:id', component: CategoryComponent,
children: [
{ path: 'post/:id', component: PostComponent }
]
]
}
];
例如我们有这样的路径:
/app/category/1/post/1
那闯入
/app - AppComponent
|_ /catory/1 - CategoryComponent
|_/post/1 - PostComponent
AppComponent 有一个<router-outlet>,它呈现CategoryComponent,
但也应该在该路由处于活动状态时呈现PostComponent。
此类问题的常见答案:
移动子路由并将它们添加到 app-route 子数组中
没有。这不是正确的方法。我们仍然想要我们的路线层次结构。 CategoryComponent 可能知道 PostComponent 不知道的东西 - 例如 Breadcrumb 命名
所以我们仍然希望我们的 CategoryComponent 能够加载。 (即使它的视图没有渲染)
在CategoryComponent 中使用<router-outlet>
没有。 CategoryComponent 不应该负责它自己的<router-outlet>。
PostComponent 应该在 CategoryComponent 的位置呈现,并添加 CSS 来放置它应该是非法的。
我怎样才能实现这种行为?
我需要编写自己的路由器插座吗?
这会在 Angular4 中解决吗?
欢迎任何提示!谢谢
【问题讨论】:
-
我也有同样的问题。您是否提出了解决方案或变通方法?
-
@Kersch 对不起,我没有什么新鲜事。
-
这里有同样的问题。我不明白为什么 Angular 不支持它,因为很多网站都是这样工作的!