2017-10-27 11 views
0

私はインタビューでこの問題に直面しました。サービスを使用して2つのコントローラ間でデータを共有し、ルートスコープを使用する方法を知っています。サービスとルートのスコープを使用せずに2台のコントローラ間でデータを渡すための角度のある方法はありますか>サービスとrootscopeを使用せずに2つのコントローラ間でデータを共有する方法は?

ご提案ください。

+1

https://docs.angularjs.org/guide/component#intercomponent-コミュニケーション – estus

答えて

1

AngularJsは、イベントの送信と読み取りを行うObserverパターンを使用します。

アプリケーションの一部が変更される場合がありますが、他の部分は更新する必要があります。 AngularJSでは、$ scopeオブジェクトが更新されると、別のコンポーネントに通知するためにイベントをトリガすることができます。オブザーバーのパターンには、オブジェクトが変更された場合、変更が発生したことを依存オブジェクトにブロードキャストします。要するに

$scope.$emit() OR $scope.$broadcast()自分の位置に応じて、そしてあなたの 'リーダー' とは何である

その後

$scope.$on()

1

あなたはまた、サービスを可能性が使用してのベストプラクティス状態オブジェクトリテラル$rootScope.sharedVarを割り当てることによって$rootScopeを使用してください。 $broadcastメソッドもあり、これはオブザーバパターンであり、pub/subのように機能します。

以上推奨方法は、あなたの$parentスコープを活用し、あなたの要素をドリルダウンすることでしょうが(それはDOMツリーに位置しどこ応じて)

関連する問題