2016-07-07 5 views
1

Angular2の意図したデザインは、loggedIn対loggedInビューのためのアドバイスを探しています。Angular2 Routing Design - デフォルトのナビゲーションコンポーネントとログイン

ユーザーがログインしている場合は、ナビゲーションとメニューバーのコンポーネントをデフォルトで表示する必要があります。そのため、現在のルートビューを表示するルーターコンセントの外に配置します。

ルートは、ユーザーがログインしていない場合は、ログインページにリダイレクトルートガードによって保護されています。

ここでは厳しいキャッチだユーザーであれば、私は明らかに、メニューやナビゲーションが表示したくありませんまだログインしていません。

このような状況にはどのような設計がありますか? 2つのルータアウトレットを使用する必要がありますか?1つはloggedIn対loggedInビュー用で、もう1つは実際のルートコンポーネント用です。

答えて

0

バックエンドへの今後の呼び出しのためのトークンを保存しているので、 *ローカルストレージサービスに* ngIfして質問することができます。つかいます。でも、そこにあることを意図したものを公開しません

<!--template bindings={ 
    "ng-reflect-ng-if": "false" 
}--> 

:結果がfalseの場合は、出力のhtmlでこれを取得します

<header id="mysupersecretheader" *ngIf="loggedIn"></header> 

: ので、このような何かをやって。

すべてが変更されているので、リリースノートとドキュメントを読む必要があります。 Here is the template syntax section

+0

ありがとう!当初、これはCSSの設計上の問題のために私にとってはうまくいかなかったが、最終的には、ngIfが実際にこの状況を処理する最良の方法であるため、CSSを変更する必要があると判断した。乾杯、トム – TommyF

1

しかし、この方法は、ブラウザの戻るボタンを押すと中断されます。 つまり、有効なログイン情報を持つログインページに移動します。ナビゲーションバーが表示されます。

+0

あなたは正しいです。これに対する解決策はありますか? – TommyF

+0

私はAuthGuardにあるイベント 'showNavBar'を放出するグローバルイベントエミッタを使用しています。それはappコンポーネントのコンストラクタで購読されています。 – user1882613

関連する問題