导航离开

时间:2016-03-31 06:04:27

标签: angular angular2-routing

我尝试使用辅助路线在侧边栏中显示不同的内容,具体取决于您所使用的路线。

问题是导航后辅助路线仍然存在(包括URL和内容)。

HTML:

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

RouteConfig:

@RouteConfig([
    {path: '/', name: 'Home', component: Home, useAsDefault: true},
    {path: '/leadslist', name: 'LeadsList', component: LeadsList},
    {aux:'/sidebar', name: 'Sidebar', component: Sidebar}
])

导航栏中的链接:

<a [routerLink]="['Home']">Home</a>    
<a [routerLink]="['LeadsList', ['Sidebar']]">Leads list</a>

当前行为:

  1. 在主页上,点击链接&#34;潜在客户列表&#34;。
  2. 我被重定向到路线&#34; / leadslist(侧边栏)&#34;并且侧边栏内容已正确加载到其路由器插座中。到目前为止一切都很好。
  3. 如果我现在点击链接&#34; Home&#34;把我带回&#34; /&#34;,而不是#34; /(侧边栏)&#34;,这会把我带回主页,但边栏已加载(不需要的行为!)
  4. 我的问题:如何在没有辅助路线的情况下导航到路线&#34;标记沿着&#34;?

1 个答案:

答案 0 :(得分:2)

目前(imho)这可以在Angular2路由器中更好地处理,但您需要做的是将 aux出口设置为null 并指向 primary出口与网址你要回去。

这是有效的,因为primary是angular2的保留默认出口。

考虑以下路线:/inbox/123131$asd(compose:reply)

在上述路线中,我们正在查看电子邮件并撰写回复。所以 - 当我们发送这个时,我们可能希望用户被发送回主视图 - 收件箱。那么你的routerLink需要如下所示:

&#13;
&#13;
<a [routerLink]="['',{outlets: {compose: null, primary: '/inbox'}}]" >Close</a>
&#13;
&#13;
&#13;

请注意,这可能会在Angular2路由器的第三次重写中发生变化。