在优化中定义范围
Defining scope in 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([=11=]).scope()
我看到 window 并想假设这超出了本地范围。
它等于当前应用程序的 $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');
我正在阅读一些优化文档,并看到了它们添加到范围中的一个有趣的值。我不确定我是否完全理解它。
这是他们文档中的函数
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([=11=]).scope()
我看到 window 并想假设这超出了本地范围。
它等于当前应用程序的 $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');