【发布时间】:2016-09-04 06:10:16
【问题描述】:
我正在开发一个 Angular2 应用程序,目前我们处于 beta-17 版本,因为候选版本不再支持捆绑并破坏了一切(这是另一回事)。
据我所知,父子路由之间的关系应该是子路由要想有路由就必须是“路由组件”。这是有道理的,对 - 但是如果我想要一个父“路由组件”,它有一个子“视图组件”,它充当子“路由组件”的父级?
.
├── app.component // Has two child routes, both are "view components"
├── plan.component
└── design.component // View component, route "/design/:id/..."
├── header.component
├── nav-and-body.component // Routing component
└── footer.component
我有一个顶级应用程序,它有两条路线,/plan/:id/... 和 /design/:id/... 路线。如您所见,我希望这些将作为其他“路由组件”的父级。想象一下,我们在“设计”路线中,我们尝试导航到 NavAndBodyComponent 中定义的子路线,它不起作用,也不会引发错误。
我相信这是因为我有一个父“路由组件”,它有一个子“视图组件”,它有一个嵌套的“路由组件”——如何在不改变这个层次结构的情况下解决这个问题?
视图组件按预期加载:
网址:localhost:5000/design/10
但是当我尝试导航到嵌套子路由时,URL 会更改为
网址:localhost:5000/model
我想要(并且期望):
网址:localhost:5000/design/10/model
更新
这里有一个很详细的Plunker!
【问题讨论】:
-
你能创建一个 Plunker。我发现很难理解你试图完成什么。如果我理解这个问题,那么我猜想有一个中间组件只有一条路径,路径为
/...和useAsDefault: true和<router-outlet>应该做你想做的事。 -
@GünterZöchbauer 我似乎根本无法让 plunker 使用 beta.17 和路由。 angular2 beta.17 plunker 有什么好的起点吗?
-
只需将链接发布到您拥有的 plunker。我会看看并尝试让它工作。
-
@GünterZöchbauer plnkr.co/edit/JK4HhQ?p=preview
-
plunker 正在工作。请检查这是否是您想要的plnkr.co/edit/LRQdTo?p=info