我正在阅读一些优化的文档,并看到了他们添加到范围的有趣值。我不确定我是否完全理解它。
以下是其文档中的功能
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 scope 这是否类似于 * $ rootscope * ?
我知道你可以通过这样做获得相关范围的价值
angular.element($0).scope()
我看到窗口,并希望假设这超出了本地范围。
答案 0 :(得分:1)
它等于当前应用程序$rootScope
,只要它是使用body
元素引导的,并且body
上没有具有自己范围的指令。只要该应用程序使用body
或html
进行自举,就可以使用当前的代码段,因为$locationChangeSuccess
会广播到所有范围。
对于启用debugging data的情况,防故障方法为
var root = angular.element(document.querySelector('.ng-scope')).scope().$root;
和
var root = angular.element(document.querySelector('.ng-scope')).injector().get('$rootScope');