优化定义范围

时间:2016-01-29 00:12:33

标签: angularjs optimizely

我正在阅读一些优化的文档,并看到了他们添加到范围的有趣值。我不确定我是否完全理解它。

以下是其文档中的功能

 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()

我看到窗口,并希望假设这超出了本地范围。

1 个答案:

答案 0 :(得分:1)

它等于当前应用程序$rootScope,只要它是使用body元素引导的,并且body上没有具有自己范围的指令。只要该应用程序使用bodyhtml进行自举,就可以使用当前的代码段,因为$locationChangeSuccess会广播到所有范围。

对于启用debugging data的情况,防故障方法为

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

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