AngularJS Wczytaj dane z usługi
Mam problem z pobieraniem danych z usługi do mojego widoku. Mam usługę zdefiniowaną jako taką
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;
});
i mój kontroler
function NavigationCtrl($scope, $http, nukeService){
/*$http.get('nukes/nukes.json').success(function(data) {
$scope.nukes = data;
});*/
$scope.nukes = nukeService.getNukes();
}
Jeśli korzystam z $ http.get z kontrolera, dane wypełniają się dobrze, jednak jeśli spróbuję wywołać dane z usługi, nic nie otrzymam. Rozumiem, że zapytanie jest asynchroniczne, ale trudno mi zrozumieć, jak zapełnić zmienną $ scope po zwróceniu danych. Mógłbym użyć $ rootscope do transmisji zdarzenia i nasłuchiwać go w kontrolerze, ale nie wydaje się to właściwym sposobem na wykonanie tego. Naprawdę doceniłbym każdą radę, jak zrobić to w odpowiedni sposób.