AngularJS Загрузка данных из сервиса
У меня проблема с получением данных из службы, заполненной в моем представлении. У меня есть служба, определенная как таковая
app.factory('nukeService', function($rootScope, $http) {
var nukeService = {};
nukeService.nuke = {};
//Gets the list of nuclear weapons
nukeService.getNukes = function() {
$http.get('nukes/nukes.json')
.success(function(data) {
nukeService.nukes = data;
});
return nukeService.nukes;
};
return nukeService;
});
и мой контроллер
function NavigationCtrl($scope, $http, nukeService){
/*$http.get('nukes/nukes.json').success(function(data) {
$scope.nukes = data;
});*/
$scope.nukes = nukeService.getNukes();
}
Если я использую $ http.get из контроллера, данные заполняются нормально, однако, если я пытаюсь вызвать данные из службы, я ничего не получаю. Я понимаю, что запрос является асинхронным, но мне трудно понять, как заполнить переменную $ scope, как только будут возвращены данные. Я мог бы использовать $ rootcope для трансляции события и прослушивания его в контроллере, но это не похоже на правильный способ сделать это. Буду очень признателен за любые советы о том, как сделать это правильно.