У меня есть angularjs Служба и в процессе обслуживания получить запрос на один раз. и я использую ответ в каком-то контроллере.
Я использую $rootScope
для проверки извлечения данных следующим образом. Проблема в функции обратного вызова $rooScope.$on()
, она работает только один раз, когда я изменил root, и функция обратного вызова контроллера не работает, пока я не обновлю sh страницу.
Сервис.
app.factory('$init', function ($rootScope,$rest) {
var service = {
};
var response = null;
service.onCreate = function (callback) {
if(response != null) {
callback();
}
else {
$rest.get('app/init', {}, function (responseInit) {
response = JSON.clone(responseInit);
callback();
});
}
};
service.response = function () {
return response;
}
service.init = function () {
service.onCreate(function() {
console.log('broadCast');
$rootScope.$broadcast('$init.onSuccess');
});
};
service.init();
return service;
});
Первый контроллер.
app.controller('firstController', function ($scope, $init, $rootScope) {
$scope.init = $init;
$scope.initData = function () {
$rootScope.$on('$init.onSuccess', function () {
var response = $scope.welcomeInit;
$scope.response = response.response();
});
};
$scope.initData();
});
Второй контроллер.
app.controller('SecondController', function ($scope, $init, $rootScope) {
$scope.init = $init;
$scope.initData = function () {
$rootScope.$on('$init.onSuccess', function () {
var response = $scope.welcomeInit;
$scope.response = response.response();
});
};
$scope.initData();
});