【问题标题】:Defining scope in optimizely在优化中定义范围
【发布时间】:2016-01-29 00:12:33
【问题描述】:

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

这是他们文档中的函数

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

我看到 window 并想假设这超出了本地范围。

【问题讨论】:

    标签: angularjs optimizely


    【解决方案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');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-11
      • 2011-07-30
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多