登录段后不存在Angular2重定向

时间:2017-05-15 09:09:10

标签: javascript angular angular2-routing

我目前正试图让它导航到/ minions组件以访问regular插座,这意味着登录时要使用的插座。

如何使此重定向工作?

在loginhandler类(aka / login)中的ngOnInit中我有以下内容:

 ngOnInit() {
    this.CoreService.isLoggedin().subscribe(data => {
     if (data) {
       console.log("redirect... from login");
       this.Router.navigate(["/minions"]);
     }

    });

  }

但结果是:

Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'minions'

app.module.ts路由:

RouterModule.forRoot([

          {
            path : 'minions',
            component: MinionsComponent,
            outlet: 'regular'

          },
          {
            path: '',
            redirectTo : 'login' ,
            pathMatch: 'full'
          },
          {
            path: 'login',
            component: LoginhandlerComponent,
          },

        ]

    )

体:

 {{ user  }}

<div *ngIf="user">



  <div class="bodyWrapper container">
    <div class="header">


    </div>

    <div class="sidebar left">
      <ul>

        <a [routerLink]="['/', {outlets: {'regular': 'minions'}}]" routerLinkActive="active">minions</a>




      </ul>
    </div>
    <div class="middlecontent">
      <div style="width: 100%; max-width: 860px; margin-left: auto; margin-right: auto; min-height: 400px;">
        <router-outlet name="regular"></router-outlet>
      </div>
    </div>
    <div class="sidebar right">
      <div class="top">{{ user.username }}</div>

    </div>
  </div>


</div>

<div *ngIf="loggedin == false">
  <a [routerLink]="['/', {outlets: {'outside': 'login'}}]" routerLinkActive="active">Login</a>


  <div style="width: 100%; max-width: 860px; margin-left: auto; margin-right: auto; min-height: 400px;">
    <router-outlet></router-outlet>

  </div>




</div>

1 个答案:

答案 0 :(得分:1)

在您的路由代码中,您经常使用outlet,因此您应该传递如下所示的值

this.router.navigate(['/', {outlets: {'regular': "minions"}}]);
相关问题