无法导航到Angular2中按名称指定重定向到的路由

无法导航到Angular2中按名称指定重定向到的路由,angular,angular2-routing,Angular,Angular2 Routing,我的RouteConfig定义了以下路径 @RouteConfig ([ { path:'/main',name:'Home',redirectTo: ['Setup']}, { path:'/setup',name:'Setup',component:SetupComponent}, { path:'/configuration',name:'Configuration',component:ConfigurationComponent}, ]) 在模板中,我有

我的RouteConfig定义了以下路径

@RouteConfig ([
    { path:'/main',name:'Home',redirectTo: ['Setup']},
    { path:'/setup',name:'Setup',component:SetupComponent},
    { path:'/configuration',name:'Configuration',component:ConfigurationComponent},
])
在模板中,我有

    <ol>
        <li><a [routerLink]="['Setup']">Setup</a></li>
        <li><a [routerLink]="['Configuration']">Configuration</a></li>
        <li><a [routerLink]="['Home']">Home</a></li>                
    </ol>
在这两种情况下,(使用routerLink指令和Router.navigate方法)在尝试导航到“主”路线时,我都会遇到以下错误

Component "AppComponent" has no route named "Home"
然而,两条具有相关组件的路由均按预期工作。从子路由器调用它们时的行为也是如此


如何路由/导航到由名称“Home”定义的路由?

您不能为重定向路由分配名称。由于
Home
重定向到名为
Setup
的路由,因此我将使用
Setup
名称。

您应该在路由器名称之前使用此名称。_router.navigate(['/Home'])


请参见示例代码中的另一个示例,您拥有主/主路线对象,它是:

{
   path:'/main',
   name:'Home',
   redirectTo: ['Setup']
},
您需要路由到路径-
/main
,而不是name-
Home
。因此,您的html应该是:

<ol>
   <li><a [routerLink]="'/setup'">Setup</a></li>
   <li><a [routerLink]="'/configuration'">Configuration</a></li>
   <li><a [routerLink]="'/main'">Home</a></li>
</ol>

我也没有看到<代码>名称<代码>属性,请考虑删除它。


希望有帮助。

是在AppComponent文件中定义的
@RouteConfig
吗?@PierreDuc是的,它是在AppComponent中定义的。我同意你的看法。您应该将重定向路由视为规则,而不是单独的路由。
<ol>
   <li><a [routerLink]="'/setup'">Setup</a></li>
   <li><a [routerLink]="'/configuration'">Configuration</a></li>
   <li><a [routerLink]="'/main'">Home</a></li>
</ol>
this._Router.navigate(['/main']);