私は皆が偉大なことを願っています。複数のビューが同じコントローラでバインドされていますか?ベストソリューション?
私は2つのビューを持つ1つのコントローラを持っています。私が望むのは、リストAから通知を削除すると、というモデルのリストBが更新されるはずです。
1つの方法は、サービスを作成し、両方のコントローラでリストモデルを共有することです。しかし、他の最善の方法はありますか?
私は皆が偉大なことを願っています。複数のビューが同じコントローラでバインドされていますか?ベストソリューション?
私は2つのビューを持つ1つのコントローラを持っています。私が望むのは、リストAから通知を削除すると、というモデルのリストBが更新されるはずです。
1つの方法は、サービスを作成し、両方のコントローラでリストモデルを共有することです。しかし、他の最善の方法はありますか?
上記のようにサービスまたは工場を介してデータを共有してください。または、$rootScope.$broadcast
イベントを使用して、コントローラのインスタンス間で通信することができます。
もう1つの方法は、親スコープ内に状態を持ち、その状態をコンポーネント/指令の属性を介して両方の子に渡すことです。例えば。
<my-first-directive shared-data="sharedData"></my-directive>
<my-second-directive shared-data="sharedData"></my-directive>
このようにして、受信ディレクティブ/コンポーネントをステートレスにすることができます。
は
2つのビューのコードがそれほど多くない場合、両方のビューに1つのコントローラを使用できます。
他のコンポーネントに対して同じビューを2つ作成しないことをお勧めします。私にとっては、方位配線を使用する方がよいため、異なるルートで1つの状態を使用することができます。
$stateProvider.state("my_state", {
url: "/myView",
templateUrl: "/views/my-view.html",
controller: "MyCtrl"
});
P.S.この目的のために$rootScope
を使用しないでください。良い例ではありません!)
コントローラのインスタンス間でデータモデルを共有する方法の例は示していません。 – Amygdaloideum
この方法を試してください。あなたはこれをしようとするとconst.js
コントローラはシングルトンではなく、2つのインスタンスがお互いのスコープにアクセスすることができなくなりますように、URLとリストのデータで使用するリストデータを共有コントローラにすることができ
! – Amygdaloideum
http://stackoverflow.com/questions/21919962/share-data-between-angularjs-controllers –
はい、この例では、コントローラは同じコントローラの同じインスタンスを持つのではなく、ファクトリを介してデータを共有します。 – Amygdaloideum