子路径内的辅助路由,不知道如何设置让它工作。 我有根组件和路由配置文件,如:
root.routes.ts
export const rootRoute:RouterConfig=[
...ChildrenRoute,
{path:'',component:ChildrenRootComponent},
{path:'children-root',component:ChildrenRootComponent},
{path:'other',component:OtherComponent'}
];
template:
'<a routerLink='children-root'>Children root</a>
<a routerLink='other'>Other</a>
<router-outlet></router-outlet>'
和ChildrenRootComponent的FirstComponent和SecondComponent的路由配置文件如:
children.routes.ts
export const ChildrenRoute:RouterConfig=[
{path:"",redirectTo:'/children-root',pathMatch:'full'},
{path:'children-root',component:ChildrenRootComponent,
children:[
{path:'',component:FirstComponent},
{path:'first',component:FirstComponent},
{path:'second',component:SecondComponent,outlet:'aux'}
]
}
];
template:
' <a routerLink='first'>First</a>
<router-outlet></router-outlet>
<a routerLink='aux:second'>Second</a>
<router-outlet name="aux"></router-outlet>'
现在从儿童根路线 - &gt;路线第二个没问题,但路线儿童根 - &gt;第一个无法显示错误:
Error: Cannot match any routes: 'children-root/second'
更改模板:
' <a routerLink='first'>First</a>
<router-outlet></router-outlet>
<a routerLink='(aux:second)'>Second</a>
<router-outlet name="aux"></router-outlet>'
也不起作用。错误:
Error: Cannot match any routes: 'children-root/second)'
注意这里')'在错误信息中,没有'('。 直接在浏览器中设置url如下所示
localhost:4200/children-root/(aux:second)
重新加载并且运行良好。所以我想我设置routerLink错了,搜索了很多,没有找到任何关于这个。
答案 0 :(得分:1)
RC.4还不支持具有辅助路由的routerLink。尝试这样的事情:
<a href="/children-root/(aux:second)">Second</a>
答案 1 :(得分:1)
RC4。还没有正确支持routerLink。您可以使用navigateByUrl
或手动&#39; a&#39;来获得所需的结果。标签。
我假设当您尝试导航到第二个时,您的第一个组件是可见的。然后尝试
this.router.navigateByUrl('/children-root/(first//aux:second)');
或
<a href="/children-root/(first//aux:second)">Second</a>
可以在this
上阅读路线网址形成的说明答案 2 :(得分:0)
刚刚修好了。我们将在即将出版的 RC.5
中看到它正在运行