Mam problem z pobieraniem danych z usługi do mojego widoku. Mam usługa zdefiniowane jako takiDane obciążenia AngularJS z usługi
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 mojego kontrolera
function NavigationCtrl($scope, $http, nukeService){
/*$http.get('nukes/nukes.json').success(function(data) {
$scope.nukes = data;
});*/
$scope.nukes = nukeService.getNukes();
}
Jeśli używam $ http.get od kontrolera danych zapełnia porządku, jednak gdy próbuję zadzwonić dane z usługa, nic nie dostaję. Rozumiem, że kwerenda jest asynchroniczna, ale trudno mi zrozumieć, jak wypełnić zmienną $ scope po zwróceniu danych. Mogę użyć $ rootscope do nadania zdarzenia i posłuchania go w kontrolerze, ale nie wydaje mi się to właściwym sposobem na osiągnięcie tego. Byłbym wdzięczny za wszelkie porady, jak to zrobić w prawidłowy sposób.
To działało, ale mogę zapytać, dlaczego? Zakładam, że ma to coś wspólnego z .data będącym kontenerem dla danych json zamiast próbować przekazać go bezpośrednio? Przy okazji, dziękuję za szybką odpowiedź! – jamesamuir
jeśli to działa, proszę zaznaczyć odpowiedź jako zaakceptowaną –
oznaczoną jako odpowiedź. Dziękuję za wyjaśnienie. – jamesamuir