在角4”删除辅助路线

在角4”删除辅助路线

问题描述:

我见过一个例子,我有两个<router-outlet>,其中只有一个具有name属性 - 所以我做了一个小测试:在角4”删除辅助路线

我有这样的路由器映射:

export const routing = [ 
    {path:'', pathMatch:'full', component:EmptyComponent}, 
    {path:'dog', component:DogComponent}, 
    {path:'bird', outlet:'under', component:BirdComponent} 
]; 

而且我也有这个routerLinks

<li><a [routerLink]="['']">Clear</a></li> 
<li><a [routerLink]="['dog']">Only Dog</a></li> 
<li><a [routerLink]="['/', {outlets: {under: ['bird','' }}]">Only Bird</a></li> 
<li><a [routerLink]="['dog',{outlets: {under: ['bird','' }}]">Dog & Bird</a></li> 

<router-outlet></router-outlet> 
<hr> 
<router-outlet name='under'></router-outlet> 

问:

如果我点击Clear - 我看没有(✓)
如果我再单击Only Dog - 我只看到一只狗(✓)
如果我再单击Only Bird - 我看到这两个狗和鸟(✕ - 这是为什么 ?我只想看到鸟) 如果我点击Dog & Bird - 我看到一个错误(✕ - 不能匹配任何路由URL段:。“狗”我期待看到这两个狗和鸟)

这是为什么?我该如何解决我的代码,以便它能够显示确切的链接描述?

PLNKR

相关或不 - 我认为它必须做一些与结算的AUX线(经routerLink空传递是没有帮助 - 见PLNKR2

+4

鸟儿看到狗后,鸟会飞走。你应该看看那个 – PierreDuc

+0

我记得以前有过这样的问题。是你吗? – echonax

+0

@echonax nope。但是我确实从一个在线非工作的plnkr中获得了总体思路。 –

我固定plunker。 https://plnkr.co/edit/2fvbGnepD5tGaeYb8DKK?p=preview

这里是路由。当我需要用两个插座导航时,阅读路由测试可以理解我的理解 - 只使用插座。主要出口只使用'主'。

<li><a [routerLink]="['']">None</a></li> 
    <li><a [routerLink]="[{outlets: {primary: 'dog', under: null}}]">Only Dog </a></li> 
    <li><a [routerLink]="[{outlets: {primary: null, under: ['bird']}}]">Only Bird</a></li> 
    <li><a [routerLink]="[{outlets: {primary: ['dog'], under: ['bird']}}]">Dog & Bird</a></li> 
+0

**完美**。谢谢。 –

+0

[我有一个相关的](https://stackoverflow.com/questions/47857150/angular-how-can-i-activate-aux-route-with-lazy-loaded-module)与出口问题,你可以请有一个看? –