私は3つのコンポーネント角度1.xのコンポーネント、UIルータ1の状態変化
- アプリケーションコンポーネント
- ログインコンポーネント
- ダッシュボードコンポーネント
アプリケーションコンポーネント
をしましたappコンポーネントはコンポーネントツリーのメインコンポーネントです。このコンポーネントは、ヘッダとコンテンツのラッパーで構成される基本レイアウトも保持します。
<div class="container-fluid">
<navigation routes="$ctrl.routes"></navigation>
</div>
<ui-view></ui-view>
ログインコンポーネント
ログインコンポーネントは、ログインフォームをレンダリングし、それが魔法ないコンポーネントです。
ダッシュボードコンポーネント
ダッシュボードコンポーネントは、ユーザ・データをレンダリングします。
米国
{
name: 'app',
url: '',
abstract: true,
component: 'appComponent',
resolve: {
routes:() => Routes
}
},
{
name: 'app.login',
url: '/',
label: 'Login',
data: {
navigations: ['navbar-no-user']
},
component: 'loginComponent',
resolve: {
redirectUrl:() => 'app.dashboard'
}
},
{
name: 'app.dashboard',
url: '/',
label: 'Dashboard',
data: {
navigations: ['navbar']
},
component: 'dashboardComponent'
}
シナリオ
ビジターアプリをロードされ、ナビゲーションバーには、ログインのような唯一のナビゲーションバー-NO-ユーザー項目と表示されるはずです。ビジターがログインしてユーザーになり、ダッシュボードのようなnavbarアイテムのみのnavbarが表示されるはずです。
私はこのシナリオのためのソリューションを探しています
質問は、通常にOnStateChangeイベントがあったと私は、コントローラの内部で、これを使用することができます。私が今利用できるのは、各コンポーネント固有のナビゲーションをレンダリングすることだけです。
私が通常行うことは、ダッシュボードの親状態(ログイン後のすべての状態)を追加することです。あなたは、easlyあなたが 'app'州のためにしたのと同じように、メインビューを持つ抽象的な親状態'ダッシュボード 'を追加することができます。 –
@ daan.desmedtこれはオプションの可能性があります。あなたは可能な他の戦略を知っていますか? – Sedenko
'rootscope'変数を使って表示部分をいつ表示するかを指定することができます。しかし、私の意見では、' state'ビューはロジックであり、 'digest cycle'にはあまり集中しません。 –