0

私は最適化のためにいくつかのドキュメントを読んでいて、それらがスコープに追加する興味深い値を見ました。私はそれを完全に理解しているかどうか確信が持てません。

ドキュメントの関数は次のとおりです

 function(activate, options) {
   var scope = window.angular.element('body').scope();
   scope.$on('$locationChangeSuccess', function(event, next, current) {
     if (next.indexOf('/productPage') != -1) {
       if (!options.isActive) {
         activate();
       }
     }
   });
 }

var スコープを完全には守っていませんこれは* $rootscope *に似ていますか?

これを行うことで、関連するスコープの値を取得できることを知っています

angular.element($0).scope()

ウィンドウが表示され、これがローカル スコープを超えていると想定したい。

4

1 に答える 1

1

$rootScope要素でブートストラップされている限り、現在のアプリケーションと同じであり、独自のスコープを持つbodyディレクティブはありません。アプリがまたはでbodyブートストラップされている限り、 はすべてのスコープにブロードキャストされるため、現在のコードに対して機能します。bodyhtml$locationChangeSuccess

データのデバッグが有効になっている場合、フェイルプルーフの方法は次のとおりです。

var root = angular.element(document.querySelector('.ng-scope')).scope().$root;

var root = angular.element(document.querySelector('.ng-scope')).injector().get('$rootScope');
于 2016-01-29T01:17:55.637 に答える