2016-03-18 9 views
1

JavascriptとAngularJSの新機能です。どちらもイベントリスナーのように思えます。違いは何ですか?交換可能に使用できますか?どうやって?

答えて

4

$ scope。$ scopeは$ scopeの$ broadcast()イベントを捕捉しますが、addEventListenerはページのイベントをリッスンします。彼らは似ていますが、互換性はありません。

アングルアプリで作業している場合は、別途必要な場合を除いて$ scope $を使用します。つまり、アングルアプリの外からイベントをキャッチします。単体テストを書く場合にはテスト容易性が得られ、おそらくあなたが探しているものである自分のコードからのイベントしか探しません。可能な限り、

1

いいえとは非常に似ていますが、異なるオブジェクトで動作し、互換性はありません。です。どちらもイベントを発行できるオブジェクトにイベントリスナーを追加しますが、スコープはHTMLElements(documentなど)ではなく、HTMLElementsとは異なるスコープでイベントが発生します。

1

$scope.$onを使用してください。通常、角度を使って何かをする方法があれば、そのようにする必要があります。

$scope.$onは、すべての親のコントローラにデータを送信$scope.$emit、およびすべての子のコントローラにデータを送信し$scope.$broadcastと組み合わせて使用​​されます。これにより、アプリを通じてデータフローをより詳細に制御できます。さらに、ネイティブ・イベント・リスナーの内部でイベントを処理すると、双方向データ・バインディングが壊れます。