Здравствуйте, пытался понять один вопрос который у меня возник с $broadcast в AngulaJS, но так ничего не понял. Мое приложение работает, но хочется докопаться до истины. Собственно вопрос: Почему данный код не работает?
app.controller('AuthController', function ($scope, $rootScope, DeviceService){
$rootScope.$on('device_info:ready', function(){
console.log("It's OK");
});
});
(function () {
app.service('DeviceService', function ($rootScope) {
function init() {
if(true){
$rootScope.$broadcast('device_info:ready');
}
}
init();
});
})();
А этот работает:
app.controller('AuthController', function ($scope, $rootScope, ServiceTest){
$rootScope.$on('device_info:ready', function(){
console.log("It's OK");
});
ServiceTest.test();
});
app.service('ServiceTest', function($rootScope){
this.test = function(){
if(true){
$rootScope.$broadcast('device_info:ready');
}
};
});
Сервис объявите вот так:
app.service('DeviceService', function ($rootScope) {
return function () {
function init() {
if(true){
$rootScope.$broadcast('device_info:ready');
}
}
init();
}
});
В этом случае результатом создания сервиса будет функция, внутри, которой, вы уже можете объявить все свои свойства и т.д.
Продвижение своими сайтами как стратегия роста и независимости