Angular:在辅助路由器中导航

问题描述 投票:0回答:1

我有一个带有辅助路由器和一些嵌套路由的应用程序。

如果我从我的主要路线中删除到我的辅助路由器的导航,它工作正常。 如果我从辅助路由器中的嵌套路由执行此操作,则什么也不会发生。

这是我的路由示例:

{
    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”。我真的无能为力吗?

angular angular-routing
1个回答
0
投票

好的,所以我设法通过将 relativeTo 参数设置为

route.root
来使其工作。

它不漂亮,但它有效。

这里是:

<a [routerLink]=['', {outlets: {primary: '', quickview: null}}] [relativeTo]="route.root">Close search</a>

© www.soinside.com 2019 - 2024. All rights reserved.