如何通过代码导航到嵌套路由器
How to navigate to nested router via code
如何通过代码创建此 link:
'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)', error: Error:
Cannot match any routes. URL Segment: 'bar')
缺少 'Home' 和“(foo:bar)”之间的 /:/Home/(foo:bar)'
根据评论更新:
我有一个页面 'Home',其中包含我的导航栏。
在该导航栏下我有一个 'named router-outlet' 显示用户浏览的页面。
我不得不自己添加前缀:
this._router.navigate(['Home', { outlets: { foo: bar} }]);
如何通过代码创建此 link:
'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)', error: Error: Cannot match any routes. URL Segment: 'bar')
缺少 'Home' 和“(foo:bar)”之间的 /:/Home/(foo:bar)'
根据评论更新:
我有一个页面 'Home',其中包含我的导航栏。
在该导航栏下我有一个 'named router-outlet' 显示用户浏览的页面。
我不得不自己添加前缀:
this._router.navigate(['Home', { outlets: { foo: bar} }]);