angular2-meteor アプリを 1 つ作成しています。
export const routes: Route[] = [{
path: '',
redirectTo: "login",
pathMatch: "full"
},
{
path: 'login',
component: LoginComponent
},
{
path: 'csvtemplate',
component: TemplateComponent,
canActivate: ['canActivateForLoggedIn'],
children: [{
path: '',
redirectTo: 'dashboard' <----how to add condition for multiple path
},
{
path:'dashboard',
component: DashboardComponent
},
{
path: 'csvtimeline/:month/:year',
component: CsvTimelineComponent
}, {
path: 'csvjson',
component: CsvJsonComponent
}]
}];
LoginComponent を使用してアプリにログインすると、3 つの子コンポーネントを持つ TemplateComponent に移動します
- ダッシュボード
- csvタイムライン
- csvjson
これで、デフォルトで、ダッシュボード コンポーネントに redirectTo を設定しました。しかし、このリダイレクトの代わりに、ログイン ユーザー プロファイルに基づいて csvjson コンポーネントまたは csvtimeline コンポーネントにリダイレクトしたいと考えています。
仮定する
ログイン ユーザーが「管理者」の場合は、redirectTo - > ダッシュボード コンポーネントにする必要があります。
ログイン ユーザーが「Guest」の場合は、redirectTo である必要があります - > csvjson コンポーネント
リダイレクト用のダッシュボード コンポーネントの ngOnInit() でこれを実行できることはわかっています。
if (this.user && this.user.profile.role == 'Guest') {
this._router.navigate(['csvtemplate/csvjson']);
}
しかし、私はより良いオプションを探しているので、毎回ダッシュボード コンポーネントを開く必要はなく、csvjson コンポーネントに直接移動します。