角度辅助路线 - 无法导航和在相同的导航呼叫中清除次要路由?

时间:2017-04-27 01:57:50

标签: angular angular2-routing angular-routing

我遇到了问题,我无法导航到新路线,同时清除插座/辅助路线。

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

这些独立工作:

select no,
       (select character
        from t
        where t.no = n.no
        for xml path ('')
       ) as output 
from (select distinct no from t) n;

我认为这应该有用,但它并没有清除出口:

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

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

我目前的解决方法是:

this._router.navigate(['/second', {outlets: { popup: null }}]);

我已创建plnkr proof of concept - 导航代码位于this._router.navigate(['', {outlets: { popup: null }}]).then(() => { this._router.navigate(['second']); } );

2 个答案:

答案 0 :(得分:6)

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

["some command; `other command (different command) $(some command)`",
 "`other command (different command) $(some command)",
 "different command", "some command"]

更新了您的Plunker!!

希望这会有所帮助!!

答案 1 :(得分:0)

当主要导航在主要路线上是绝对的时,以上方法适用。 我遇到的问题是:如何在清除次要路线的同时在主要路线上进行相对导航。

我尝试了不同的组合,但似乎都不起作用:

开始于 HR.EMP_JOB_FK

https://localhost:4200/one/two(popup:some/other)

结束于 this.router.navigate([ '', { outlets: { primary: ['areaTwo', 'second'], popup: null, }, }, ]);

因此它将清除辅助弹出窗口,并进行绝对导航。

开始于 https://localhost:4200/areaTwo/second

https://localhost:4200/one/two(popup:some/other)

this.router.navigate([ { outlets: { primary: ['areaTwo', 'second'], popup: null, }, }, ], { relativeTo: this.activatedRoute });

结尾

因此它在主数据库上有一个亲戚,但没有清除辅助数据库。

但是我们该怎么做:

开始于 https://localhost:4200/one/two/areaTwo/second(popup:some/other)

https://localhost:4200/one/two(popup:some/other)

结尾