на следующем jsFiddle я демонстрирую проблему, которая заставляет меня задуматься. Это связано с необходимостью отправки системного события во все области, говоря им, что система завершила загрузку. Для этого я получил rootScope после начальной загрузки и назвал его evalAsync. Увы! его не выполняется.angular.js - evalAsync не называется
посмотреть здесь: http://jsfiddle.net/cusrC/8/
angular.element(document).ready(function() {
angular.bootstrap(body, ['app']);
var ngInjector = angular.injector(['ng']);
var rootScope = ngInjector.get('$rootScope');
var x = rootScope.$eval(function(scope) {
console.log('in eval');
scope.$broadcast('onLoad');
scope.$evalAsync(function(scope) {
console.log('in evalAsync');
scope.$broadcast('onLoad');
});
});
console.log('x',x);
console.log('after');
});
большое спасибо за любую идею или мысль Лиор
thanks @satchmorun. это решает. однако проблема немного глубже. Я использую templateUrls, и теперь вижу, что функции связи задерживаются до тех пор, пока все частичные файлы не будут получены с сервера. Так как $ при регистрации прослушивателя происходит во время исполнения функции связи, любое событие, транслируемое до этого выполнения, не получит значение $ on. еще не уверен, как решить, но FYI – Lior