Javascript angular2路由器出口在登录后无法工作
当im登录并导航到其他页面或登录时,我会出现以下错误:Javascript angular2路由器出口在登录后无法工作,javascript,angular,angular2-template,Javascript,Angular,Angular2 Template,当im登录并导航到其他页面或登录时,我会出现以下错误: EXCEPTION: Uncaught (in promise): Error: Cannot find primary outlet to load 'customComponent' Error: Cannot find primary outlet to load 'customComponent' 但是,当我没有登录时,导航就起作用了 我还注意到,如果我移除其中一个路由器出口,导航将正常工作。假设我在loggedin中移除路由器出
EXCEPTION: Uncaught (in promise): Error: Cannot find primary outlet to load 'customComponent'
Error: Cannot find primary outlet to load 'customComponent'
但是,当我没有登录时,导航就起作用了
我还注意到,如果我移除其中一个路由器出口,导航将正常工作。假设我在loggedin中移除路由器出口,user.username中的导航将正常工作
为什么?
我怎样才能使它正常工作?如果未登录,请在那里显示路由器出口;如果im在线,请在其他地方显示
代码:
但当我导航时,我得到:
EXCEPTION: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'murder'
为什么
完整代码路由:
RouterModule.forRoot([
{
path: 'login',
component: LoginhandlerComponent,
outlet: 'aux'
},
{
path: 'murder',
component: MurderComponent,
outlet: 'regular'
},
]
)
您需要将插座添加到路由器链接。试着这样做:
<a [routerLink]="['/', {outlets: {'regular': 'murder'}}]" routerLinkActive="active">Murder</a>
谋杀
如果要使用多个路由器插座,则需要为标签命名。看这个,我做了那个,不是吗?很抱歉,我没有看到你更新了代码。我又看了一遍,但我没有抓住错误造成的要点。但我想知道你的routerLink在哪里,它指向“谋杀”。更新了@BlackEagle,谋杀在代码中从其他更改为谋杀。如果我这样做。我还需要执行:{path:'',组件:LoginhandlerComponent,outlet:'outside',},当它不是路径时进行处理。但是当我在里面的时候,我不能用常规的。是否有办法在分配前检查用户是否登录?您还需要将路由器出口(没有名称的)移到ngIf语句之外。
path: 'murder',
component: MurderComponent,
outlet: 'regular'
EXCEPTION: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'murder'
RouterModule.forRoot([
{
path: 'login',
component: LoginhandlerComponent,
outlet: 'aux'
},
{
path: 'murder',
component: MurderComponent,
outlet: 'regular'
},
]
)
<a [routerLink]="['/', {outlets: {'regular': 'murder'}}]" routerLinkActive="active">Murder</a>