問題タブ [rootscope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4889 参照

javascript - AngularJS ファクトリー $rootScope.$on クリーンアップ

サービス内から $rootScope.$on イベント サブスクリプションをクリーンアップするにはどうすればよいですか?

$rootScope.$on イベント サブスクリプションが宣言されている、AngularJS アプリケーションのさまざまなコントローラーで初期化されている Factory があります。私の問題は、コントローラーが破棄されると、イベントがクリーンアップされないことです。読んだところ、コントローラーとディレクティブを使用すると、クリーンアップのために $destroy に $watch をセットアップできることがわかりましたが、サービスについてはどうでしょうか? サービスをどのようにクリーンアップしますか?

これが私の問題の基本的なプランカーです: http://plnkr.co/edit/dY3BVW。「子の作成」ボタンを何度もクリックして、$rootScope.$on でファクトリを初期化する子コントローラーを初期化します。[ブロードキャスト] をクリックしてブラウザー コンソールを開くと、子コントローラーが破棄された後に発生する一連のイベント サブスクリプションが表示されます。

プランカーからのスニペット:

0 投票する
3 に答える
519 参照

angularjs - この関数で $rootScope は何をしていますか?

Angular docsからのディレクティブ単体テストのこの例では:

誰かが it 関数の要素変数宣言で ($rootScope) が何をしているのか説明できますか?

どんな効果があるのか​​わからない。

0 投票する
0 に答える
719 参照

angularjs - angular.element().scope().$root と angular.element().injector().get('$rootScope') の違い

コード内の特定の問題の根本原因を見つけるのが非常に難しいと感じています。ソースコードはこちら

にアクセスしたいのです$rootScopeが、方法の 1 つが失敗しています。

ルート 1:

ng-scopeclassで DOM の最初の要素を取得し、 a を実行しangular.element(elem).scope().$rootてルートを取得します。

ルート 2:

クラスでDOMの最初の要素を取得しng-scope、要素のインジェクターを取得します.angular.element(elem).injector()injector().get('$rootScope')$rootScope

ルート 1でコードを実行すると、この要素で が使用できないため、未定義にangular.element(document.querySelector('.ng-scope')).scope()なります。scopeを取得しようとしましたがangular.element(elem).data()、空のオブジェクトが取得されました。

これは、角度がまだこの要素を通過していないことを意味しますか? ng-scopeはいの場合、角度がまだこの要素を通過していない場合、クラスが既に適用されているのはなぜですか?

$rootScopethroughinjector().get('$rootScope')と throughのアクセスの違いは何scope().$rootですか? ルート 1が失敗するのはなぜですか?

ルート 1:

ここに画像の説明を入力

ルート 2:

ここに画像の説明を入力

0 投票する
1 に答える
1310 参照

angularjs - Angular $broadcastは、ページの更新後にのみ更新されます

こんにちは、Angular で問題が発生しまし$scope.$broadcastた。ページが 1 回更新されると、リッスン値のみが更新されます。

1 つのコントローラー:

リスナー:

ページを 1 回更新すると機能しますが、初期ロード時にリスナーが機能しませんか? 何か案は?

0 投票する
1 に答える
1326 参照

javascript - angularjs の `$rootScope` に変更を反映しない

に変更を反映するのに苦労しています$rootScope。私が理解しているように (私は に非常に慣れていないことに注意してくださいangular)、$rootScopeは を横切って表示されcontrollersます。私がやろうとしているのは、値を更新し、ページ$rootScopeでその値を読み取ろうとすることです。html

問題は、変更が適用され$rootScopeても私のビューに反映されないことです。以下はコードです

値に応じてdiv表示/非表示にしたい

しかし、 を作成して$rootScope.logged = trueもビューは表示されません。私の質問は

1 - 何が間違っているのでしょうか?

2 - そのようなことを行う最も角度のある方法は何ですか?

0 投票する
1 に答える
14323 参照

angularjs - angularjsでページのアンロードを検出する

angularjs アプリケーションに対してグローバルに必要な JavaScript オブジェクトがあります。アプリケーションがアンロードされようとしているとき (ページの更新またはその他のシナリオにより)、オブジェクトをブラウザー ストレージに保持したいと考えています。オブジェクトを $rootScope に追加すると、オブジェクトをグローバルにするという最初の要件が満たされると思いますが、onbeforeunloadイベント中にオブジェクトをストレージに書き込むには、$rootScope 変数へのアクセスが必要になります。angularjsでページのアンロードイベントを検出することは可能ですか?