角度辅助路由 - 无法在同一导航呼叫中导航和清除辅助路由?

Ove*_*lew 7 angular-routing angular2-routing angular

我遇到了一个问题,看起来我无法导航到新路线,同时清除插座/辅助路线.

分别调用这两个动作是有效的 - 但感觉就像一个解决方法.是否有充分理由将它们作为两个电话完成?或者我的实施中是否有错误?或者我应该将其作为GitHub问题提交?

这些独立工作:

// Navigate to `/second`
this._router.navigate(['/second']);

// Clears the `popup` outlet
this._router.navigate(['', {outlets: { popup: null }}]);
Run Code Online (Sandbox Code Playgroud)

我认为这应该有效,但它不清楚出口:

this._router.navigate(['/second', {outlets: { popup: null }}]);
Run Code Online (Sandbox Code Playgroud)

我目前的解决方法是:

this._router.navigate(['', {outlets: { popup: null }}]).then(() => { this._router.navigate(['second']); } );
Run Code Online (Sandbox Code Playgroud)

我创建了一个plnkr概念证明 - 导航代码在global-popup.component.ts

Mad*_*jan 7

您需要明确设置主出口路径,如下所示,

public closeAndNav_singleCall() {
   return this._router.navigate([{
     outlets: { 
       primary : ['second'],
       popup: null 
     }
   }]);
}
Run Code Online (Sandbox Code Playgroud)

更新了您的Plunker !!

希望这可以帮助!!

  • 您可以使用`primary:['areaTwo','second']` (2认同)