使用routerLink的angular2 unset outlet

时间:2017-01-17 09:58:33

标签: angular router router-outlet

我的模板如下所示:

<router-outlet></router-outlet>
<router-outlet name="rightpanel"></router-outlet>

让我们说我的网址是:

/#/page1(rightpanel:panel)

我想切换到page2并使用routerLink指令删除辅助插座。我尝试了以下方法:

[routerLink]="['/page2', {outlets: {rightpanel: null}}
[routerLink]="['/page2', {outlets: {}}

在这两种情况下,页面都切换到page2,但rightpanel仍处于活动状态。我能解决的唯一方法是将以下代码放在page2的构造函数中:

this.router.navigate([{outlets: {rightpanel: null}}]);

由于许多原因,这不是一个好的解决方案。

使用角度2.4.3,路由器3.4.3

1 个答案:

答案 0 :(得分:3)

您需要设置主要插座而不仅仅是网址。就个人而言,这似乎是非常奇怪的行为,但你可以通过这样做来使它工作:

[routerLink]="[{outlets: { primary: 'page2', rightpanel: null }}]"

根据文档,primary是未命名插座的名称。