angular2 路由器插座在登录后无法正常工作



当我登录并导航到其他页面或登录时,我收到以下错误:

EXCEPTION: Uncaught (in promise): Error: Cannot find primary outlet to load 'customComponent'
Error: Cannot find primary outlet to load 'customComponent'

但是当我没有登录时,导航工作。

我还注意到,如果我删除其中一个路由器插座,导航将起作用。假设我在登录中删除路由器插座,user.username 中的导航将正常工作。

怎么来了?如何使其正常工作?如果未登录,请在此处显示路由器插座,否则,如果IM在线,则在其他地方显示?

法典:

 <div *ngIf="user.username">
   <a routerLink="/murder" routerLinkActive="active">Murder</a>
    <a routerLink="/login" routerLinkActive="active">Login</a>
    <div>
    <router-outlet></router-outlet>
    </div>
</div>
<div *ngIf="loggedin == false">
   <a routerLink="/murder" routerLinkActive="active">Murder</a>
    <a routerLink="/login" routerLinkActive="active">Login</a>
// other things
    <div>
    <router-outlet></router-outlet>
    </div>
</div>

更新:

我在登录时制作了路由器插座:

 <router-outlet name="regular"></router-outlet>

和外面:

        <router-outlet name="aux"></router-outlet>

并更改了我的路由:

   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>

最新更新