2016-12-15 7 views
0

私は2つのルートを持っていますが、それらは互いに競合しています。私にはpath: ":page"という一般的なルートがありますが、別の特定のルートpath: "id_token"があります。理想的にはルータは最初にpath: "id_token"が一致するかどうかを確認してからpath: ":page"に戻します。角度2のルーティング - ルートの一致の競合を処理する方法は?

export const ROUTES: Route[] = [ 

    // If this route is a match then use this config 
    { 
     path: "id_token", 
     pathMatch: "prefix", 
     redirectTo: ":page/d", 
    }, 

    // Otherwise use this config 
    { 
     path: ":page", 
     component: "PageComponent", 
    } 
]; 

答えて

1

あなたはあなたのルートの後、この

@Injectable() 
class MyCanActivate implements CanActivate { 
    constructor() {} 
    canActivate(
     route: ActivatedRouteSnapshot, 
     state: RouterStateSnapshot 
    ): Observable<boolean>|Promise<boolean>|boolean { 
     return true/false; //to active/deactive your route 
    } 
} 

ためCanActiveを使用することができます。

export const ROUTES: Route[] = [ 

    // If this route is a match then use this config 
    { 
     path: "id_token", 
     pathMatch: "prefix", 
     redirectTo: ":page/d", 
     canActivate: [MyCanActivate] 
    }, 

    // Otherwise use this config 
    { 
     path: ":page", 
     component: "PageComponent", 
    } 
]; 
関連する問題