angular 1.5 状態 (ネストされた状態、タブ状態、モーダル統計) をうまく使用しています
Ui-router-extras にはスティッキー状態がありますが、従来の親子状態アーキテクチャとの違いがわかりません。
スティッキー状態の基本的な例は、スティッキーがなくてもできることです。 http://plnkr.co/edit/SCHExh4DYKFd9Kq3UbaA?p=preview
を削除するsticky: true
と、同じ動作が得られます
angular 1.5 状態 (ネストされた状態、タブ状態、モーダル統計) をうまく使用しています
Ui-router-extras にはスティッキー状態がありますが、従来の親子状態アーキテクチャとの違いがわかりません。
スティッキー状態の基本的な例は、スティッキーがなくてもできることです。 http://plnkr.co/edit/SCHExh4DYKFd9Kq3UbaA?p=preview
を削除するsticky: true
と、同じ動作が得られます
いいえ、そうではありません。実際に行うことui-router
は、アプリをステート マシンに変換することです。また、ステート マシンの厳密な定義は、任意の時点で 1 つのステートしかアクティブにできないというものです。
これが意味することは、 から に遷移するたびstateA
にstateB
、stateA
のスコープ (およびコントローラーなどの他のアセット) が破棄され、stateB
インスタンス化されるということです。文字通り、stateA
とstateB
のコントローラーとスコープを同時にアクティブにすることはできません。結論として、厳密なステート マシンでは、パラレル (別名スティッキー) ステートは許可されません。
ui-router-extras
これをしましょう。一度に複数の状態をアクティブにすることができます。
シナリオの例を見てみましょう。
stateA
ます。stateA
、100 秒から 0 秒までのカウントダウンを開始しました。stateB
データを取得するために に移動します。で 10 秒間過ごしstateB
ます。stateA
さて、通常のui-router
. に戻るステップ 4 にいるときstateA
、カウントダウンは 100 秒から再開されます。粘着状態と同様に、カウントダウンは 57-10 = 47 秒から始まります。
ui-router
通常の の場合、 にトランジットするstateB
と、stateA
のスコープが破棄されるため、これは重要です。に戻るとstateA
すべてが再インスタンス化されるため、カウントダウンは再び 100 から始まります。スティッキー状態を使用している場合、スコープは保持されます。
これは、あなたのものからフォークされたplkr デモです。をコメントアウトしてsticky:true
、タブ 1 とタブ 2 を行き来すると、違いがわかります。