如何通过代码导航到嵌套路由器

时间:2018-09-10 11:23:24

标签: angular angular2-routing

如何通过代码创建此链接:
'foo'是路由器出口的名称,'bar'是组件的名称。
http:// localhost:8000 / Home /(foo:bar)

我以前是用HTML这样的:

<a [routerLink]="[{outlets: {foo: ['Bar']}}]">Bar</a>

但是我无法通过代码导航到相同的URL:

this._router.navigate([{ outlets: { foo: bar} }], { relativeTo: this._route });

在控制台中,我得到了:

  

NavigationError(id:3,url:'/ Home(foo:bar)',错误:错误:   无法匹配任何路线。网址段:“栏”)

缺少'Home'和'(foo:bar)'之间的 / :/ Home /(foo:bar)'

根据评论进行更新:
我有一个“主页”页面,其中包含我的导航栏。 在该导航栏下,有一个“命名路由器出口”,显示用户浏览到的页面。

1 个答案:

答案 0 :(得分:0)

我必须自己添加前缀:

this._router.navigate(['Home', { outlets: { foo: bar} }]);