2015-10-18 7 views
7

AngularJSで私の仕事のベストプラクティスをとるためのガイダンスが必要です。AngularJSの子コントローラから親コントローラへデータを送信するにはどうすればよいですか?

タスク:ビュー内

  1. :私は1つの親コントローラと2つのつの子コントローラを持っています。
  2. 子コントローラは、独自の$スコープとオブジェクトで動作します。
  3. ビューでsaveを押すと、子コントローラから親コントローラにデータを取得して、オブジェクトをサーバーに送信する準備をする必要があります。

私はこのアプローチに最適な解決策を混乱させています。

+1

画像をクリアするコードを追加してください。 –

+0

@Sajjad、以下の回答が見つかった場合は、質問を閉じるか、フォローアップの質問をしてください – user2954587

答えて

5

コントローラー間でデータを共有する一般的な方法は、serviceを使用することです。

あなたは可能性もbroadcastアップデート親コントローラ

0

にコントローラ間でデータを共有するための3つの一般的な方法があります。

1は、サービスや工場内のデータを入れました。彼らはシングルトンであるので、同一のサービスを注入任意のコントローラは、そのサービス内$rootScope

3使用$broadcast又は$emitスコープ間でイベントを送信し、イベント引数として共有データを渡すために

2プットデータをデータを共有することができ

1

これを達成するためのさまざまな方法.. $ rootScopeを使用して

  1. があります。
  2. サービス
  3. 利用放送と
  4. 親コントローラにオブジェクトを宣言してから、子コントローラで同じオブジェクトを変更を発するを使用します。

$ rootScopeを使用すると、アプリケーションが終了すると$ rootScope変数が破棄されるため、適切な方法ではありません。

ブロードキャストが必要になるまで、ブロードキャストまたはエミットはお勧めしません。

サービスは通信B/Wコントローラには適していますが、再度注入してメソッドを変更してください。

あなたのシナリオでは、すべてのメソッドが子コントローラで継承されるので、親の中で宣言され、子コントローラで使用される共通の$ scopeオブジェクト変数を使用することをお勧めします。

関連する問題