angular.js - angularjs で 2 つのコントローラーでリアルタイム通信を実現するにはどうすればよいですか?
迷茫
迷茫 2017-05-15 16:56:29
0
5
884

コントローラー a と b があり、コントローラー a をクリックした後、コントロール b に p を表示するにはどうすればよいですか?

例: コントローラー a はメニュー、コントローラー b はコンテンツ領域です。a で別のメニューをクリックし、b で別のコンテンツの表示を制御します。

少し努力してみました: サービスとファクトリーを試しましたが、データを共有できるだけで、リアルタイムでトリガーすることはできません

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(5)
洪涛

ここでは 2 つの方法を試しました:
1. angular 独自のイベント メカニズムを使用します

リーリー

コントローラーで使用され、イベント通知を b に送信するために a を追加します:

リーリー

2. サービスを使用してコールバック イベントをシミュレートする 本質は、コントローラー間で使用するグローバル コールバック関数を保存することです。 リーリー

いいねを押す +0
过去多啦不再A梦

そうだね。イベントのバブリングとトンネリングのメカニズムを試すことができます。

いいねを押す +0
给我你的怀抱

こちらからご覧いただけます

より直接的に言うと、$broadcast と $on を試すことができますが、効率は悪くなります

いいねを押す +0
滿天的星座

上に書いたことは十分に純粋ではない(他の考慮事項と混合している)ので、純粋なバージョンを追加します。
デモが提供されています

コードは次のとおりです

リーリー
いいねを押す +0
黄舟

1) すべてのイベントをグローバルに管理するイベント バスを作成します
2)。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート