无法导航到Angular2中按名称指定重定向到的路由
我的RouteConfig定义了以下路径无法导航到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 ([
{ 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']);