2016-01-29 3 views
0

Я читаю некоторые из документов для оптимизации и видел интересное значение, которое они добавляют в область видимости. Я не уверен, что полностью это понимаю.Определение области в 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(); 
     } 
    } 
    }); 
} 

Я не полностью следуют уаг сферы Это похоже на * $ rootscope *?

Я знаю, что вы можете получить значение соответствующей сферы, делая это

angular.element($0).scope() 

я вижу окно и хотите предположить, что это выходит за рамки локального масштаба.

ответ

1

Он равен текущему приложению $rootScope, если он был загружен с помощью элемента body, и нет никаких директив на body, которые имеют свои собственные области. Пока приложение загрузилось с body или html, оно будет работать для текущей части кода, потому что $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');