我有一个带有辅助路由器和一些嵌套路由的应用程序。
如果我从我的主要路线中删除到我的辅助路由器的导航,它工作正常。 如果我从辅助路由器中的嵌套路由执行此操作,则什么也不会发生。
这是我的路由示例:
{
path: '',
component: AppView,
children: [
{
path: 'home',
component: HomeView,
},
{
path: 'contact',
component: ContactView
},
{
path: 'quickview',
component: QuickViewComponent,
outlet: 'quickview',
children: [
{
path: 'search',
component: SearchView
},
{
path: 'create',
component: CreateView
},
]
}
]
}
如果我在 HomeView
<a [routerLink]=['', {outlets: {quickview: ['quickview', 'search'}]>Search</a>
中放置这样的内容,SearchView 将正确打开。
如果我想从 HomeView 关闭它,我可以放这个并且它工作正常:
<a [routerLink]=['', {outlets: {quickview: null}}]>Close search</a>
.
但是如果我将这最后一段代码放在 SearchView 中,什么也不会发生。
<a [routerLink]=['', {outlets: {quickview: null}}]>Close search</a>
.
据我了解,那些嵌套路由中的路由似乎不知道这个插座“quickview”。我真的无能为力吗?
好的,所以我设法通过将 relativeTo 参数设置为
route.root
来使其工作。
它不漂亮,但它有效。
这里是:
<a [routerLink]=['', {outlets: {primary: '', quickview: null}}] [relativeTo]="route.root">Close search</a>