2016-01-29 46 views
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() 

我看到的窗口,要認爲這是超越局部範圍得到相關範圍的值。

回答

1

它與當前應用程序的$rootScope相同,只要它使用body元素自舉,並且body上沒有指令具有其自己的作用域。只要該應用程序使用bodyhtml自舉,它將適用於當前的一段代碼,因爲$locationChangeSuccess會廣播到所有作用域。

對於情況下,當debugging data啓用failproof方法是

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

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