angular 2 new router rc4 child的aux路由不起作用

时间:2016-08-07 10:48:05

标签: angular angular2-routing

子路径内的辅助路由,不知道如何设置让它工作。 我有根组件和路由配置文件,如:

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错了,搜索了很多,没有找到任何关于这个。

3 个答案:

答案 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

中看到它正在运行

related GitHub issue