Angular 路由器使用未路由的插座进行导航

时间:2021-06-22 10:10:40

标签: angular routes

我使用的是 Angular 6。我有 2 个路由器出口,一个主要出口和一个命名出口。 要导航到路线,我需要从组件而不是模板导航。如果我忽略插座可以使用典型的路由器调用。导航主加载没有问题:

this.router.navigate(['sp/auth', { "myid": obj.code }]);

但是如果我尝试定义出口,我只会被重定向到不匹配的路由。

this.router.navigate([{
            outlets: {
                primary: ['sp/auth', obj.code ]
            }
        }]); 

最终我会将第二个命名的插座添加到此调用中,但我无法让它仅与主要插座一起工作。我试过用 / (绝对)作为前缀,但这只是在查看路由器跟踪时得到 url 编码。

这是路线

{path: 'sp/auth/:spID', component:SpAuthComponent},

插座适用于使用 routerLink 的其他页面。只是在组件中使用 router.navigate 时才发现路由没有找到。我一定是遗漏了什么。

1 个答案:

答案 0 :(得分:0)

在@maxime1992 之后,我添加了绝对前缀,但它仍然不起作用。我需要做的是替换路由中的斜杠(在路由跟踪器中,它们是 uri 编码的,这看起来很奇怪)。
因此,如果我添加斜杠前缀并将路由名称从 sp/auth 更改为 spauth 它工作正常,也可以从辅助视图路由中删除任何斜杠。