다음 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를 사용하고, 이제는 링크 기능이 모든 partials가 서버에서 가져올 때까지 지연된다는 것을 알았습니다. 리스너 등록시 $는 링크 함수 실행 중에 발생하기 때문에 실행 전의 모든 이벤트 브로드 캐스트는 $ on에 도달하지 않습니다. 아직 해결 방법은 없지만 참고하시기 바랍니다. – Lior