У меня возникла проблема с получением данных из службы, заполненной в моем представлении. У меня есть служба, определенная как таковая
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 после возвращения данных. Я мог бы использовать $rootscope для трансляции события и прослушивания его в контроллере, но это не похоже на правильный способ выполнить это. Я был бы очень признателен за любые советы о том, как это сделать правильно.