[解決済み] AngularJSで$rootScope.$broadcastを使う理由とは?
質問
AngularJSの基本的な情報を探してみました。
$rootScope.$broadcast
しかし、AngularJSのドキュメントはあまり役に立ちません。簡単に言うと、なぜこれを使用するのでしょうか?
また、John Papaの内部では
ホットタオル
という名前のカスタム関数があります。
$broadcast
:
function $broadcast() {
return $rootScope.$broadcast.apply($rootScope, arguments);
}
私はこれが何をやっているのか理解できませんでした。そこで、いくつかの基本的な質問をします。
1)
$rootScope.$broadcast
は何をするのでしょうか?
2)
$rootScope.$broadcast
と
$rootScope.$broadcast.apply
?
どのように解決するのですか?
-
何をするのですか?
$rootScope.$broadcast
は何をするのでしょうか?$rootScope.$broadcast
はアプリケーションスコープを通してイベントを送信しています。 そのアプリの任意の子スコープは、単純な.NET Frameworkを使用してそれをキャッチすることができます。$scope.$on()
.直接の親ではないスコープに到達したい場合、イベントを送信するのが特に便利です(たとえば親のブランチなど)。
!!! ひとつは しない を使用することです。
$rootScope.$on
をコントローラから呼び出すことです。$rootScope
がアプリケーションである場合、コントローラが破壊されてもそのイベントリスナーは存在し続け、コントローラが再び作成されると、さらにイベントリスナーが積み重なるだけです。(つまり、一つのブロードキャストが何度もキャッチされることになります)。使用方法$scope.$on()
を使用すると、リスナーも破棄されます。 -
との違いは何ですか?
$rootScope.$broadcast
&です。$rootScope.$broadcast.apply
?時には
apply()
特にディレクティブや他の JS ライブラリで作業するときは。しかし、私はそのコードベースを知らないので、ここがそうであるかどうかを判断することはできないでしょう。
関連
-
[解決済み] angularJSのSTATEを理解する
-
[解決済み] AngularJSでkeypressイベントを使用するには?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み] なぜAngularJSはselectに空のオプションを含めるのですか?
-
[解決済み] rootScope.$broadcast vs. $scope.$emit
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angular 1.2+ で ng-bind-html-unsafe を複製するために $sce.trustAsHtml(string) を使用するにはどうしたらよいですか?
-
[解決済み] ag-gridの行の追加/削除
-
[解決済み] ajaxリクエスト時にAngularjsのローディング画面が表示される。
-
[解決済み] 'ApplicationSignInManager' が見つからない(ASP.NET MVC)
-
[解決済み] AngularJS の ng-disabled ディレクティブに式を指定しても動作しない
-
angularjs が src で指定されたコンテンツを iframe 内で正しく表示しない
-
[解決済み] Angularjsを使用してローカルストレージにデータを保存するにはどうすればよいですか?
-
[解決済み] Jasmineの "callThrough "と "callFake() "の実用的な例が欲しい
-
[解決済み] angular.serviceとangular.factoryの比較
-
[解決済み] AngularJSのng-repeatでキーと値を反復処理する方法は?