[解決済み] rootScope.$broadcast vs. $scope.$emit
質問
との性能差はなくなりました。
$broadcast
と
$emit
が廃止されたのですが、何か理由があるのでしょうか?
$scope.$emit
から
$rootScope.$broadcast
?
違いますね、はい。
$emit
は、スコープ階層(上方)に制限されています。これは、デザインに合っていれば良いことかもしれませんが、私にはかなり恣意的な制限のように思えます。
$rootScope.$broadcast
はすべてにおいて機能します。
選ぶ
という制限の方が、より理にかなっていると思います。
何か見落としているのでしょうか?
EDITです。
回答を受けて明確にすると、ディスパッチの方向は私が追い求めている問題ではありません。
$scope.$emit
はイベントを上向きにディスパッチし
$scope.$broadcast
- を下向きにします。しかし、なぜ常に
$rootScope.$broadcast
すべてのリスナーに届くようにするには?
どのように解決するのですか?
tl;dr (このtl;drは sp00m の回答)
<ブロッククオート
$emit
は、イベントを上向きにディスパッチします ...
$broadcast
イベントを下方向に送出する
詳細説明
$rootScope.$emit
は、他の
$rootScope
リスナーがそれをキャッチします。これは、すべての
$scope
を取得する。ほとんどがハイレベルなコミュニケーションです。子供に聞こえないように、大人同士が部屋で話しているようなものだと思ってください。
$rootScope.$broadcast
は、かなり多くの人に聞こえるようにする方法です。これは、親が夕食の準備ができたと叫んで、家中の人に聞こえるようにするのと同じことです。
$scope.$emit
は、その
$scope
とそのすべての親と
$rootScope
を聞くことができます。これは子供が家で親に愚痴をこぼすようなものです(ただし、他の子供に聞こえるようなスーパーではダメです)。
$scope.$broadcast
が対象です。
$scope
とその子供たち。これは子供がぬいぐるみにささやき、親に聞こえないようにするものです。
関連
-
[解決済み] AngularJSのシンプルな "Hello, world "が動作しない。
-
[解決済み] AngularJS 。scope.apply()呼び出し時の$digest already in progressエラーを防ぐ。
-
[解決済み] AngularJs .$setPristineでフォームをリセットする
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み] ng-classを使った複数クラスの追加
-
[解決済み] 子コントローラから親スコープにアクセスするAngularJS
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み】AngularJSのスコーププロトタイピング/プロトタイピング継承のニュアンスとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Angularjsのng-viewが動作しない。
-
[解決済み] angularのpostリクエストでpreflightのレスポンスがHTTPステータスコード403で不正になる。
-
[解決済み] AngularJSの$parentは何を意味するのですか?
-
[解決済み] AngularJsでng-Cloakディレクティブを実際に使用する方法とは?
-
[解決済み] ディレクティブ '...' が要求するコントローラ 'ngModel' が見つかりません。
-
[解決済み] AngularJS : ローカルストレージを使用する
-
[解決済み] ng-pattern` - 数字だけをチェックする方法は?
-
angularでのng-repeatとtrack by
-
[解決済み] ng-classを使った複数クラスの追加
-
[解決済み] AngularJSのサービスをコンソールからテストするにはどうしたらいいですか?