2017-07-12 7 views
1

ロジックを使用してパスをヒットし、ロードするコンポーネントを選択することは可能ですか?誰かがサイトにログインしている場合ロジックに基づいてパスコンポーネントを選択する

{ 
    path: '', 
    component: LandingComponent, 
} 

しかし、私はそれらをたい:私は基本的なレベルで通じ並べ替えしようとしている例では、誰かが/をヒットした場合、私は通常のような何かをしたいです彼らは/を打ったときHomeComponentに行く:

{ 
    path: '', 
    component: HomeComponent, 
} 

私は他の値に基づいて、これら二つのコンポーネントの負荷のどの選択したいと思います。私は、ユーザーが/homeにログオンして、リゾルバーを使用していて、その中にダイナミックコンポーネントを含むラッパーコンポーネントを作成する以外は、リダイレクトできることを知っています。私はルータの設定を変更できることも見てきましたが、私が見たのは2016年初頭の質問だったので、もう有効かどうかはわかりません。このような

+0

ルートガードを見てください。ログインしている場合にのみ家に帰るよう許可し、そうでない場合は別のルートのリンク先ページにリダイレクトすることができます。 – jonrsharpe

+0

私が言及したように、私はそれらをリゾルバーなどでリダイレクトすることができますが、別のコンポーネントを同じパスで選択することに興味がありました。私はその質問を明確にするでしょう。 – RhoVisions

答えて

0

何か作業をする必要があります:

{ 
    path: 'foo', 
    component: GLOBAL_CONDITION ? FooComponent : BarComponent 
} 

しかし、他の人のように、この特定のシナリオのためにルートガードがしばしば優れている...と述べています。これにより、子ルートへのアクセスを防止することもできます。そのため、ユーザーは他のルートのいずれかに直接URLを入力してセキュリティを守れませんでした。

+0

Yah、私が言ったように、私はガードを使用することができますが、私はどのようにコンポーネントを変更するための警戒を得ることができないのか分かりません。私が知っているベストは、ガードが私にリダイレクトさせてくれることです(私は間違いなくセキュリティガードを持っています)ので、最適な解決策は別々のパスを持つことです。条件に基づいて異なるコンポーネントはありませんか? – RhoVisions

+0

ガードは別のコンポーネントにリダイレクトできますが、別のパスが必要です。 – DeborahK

関連する問題