Ho riscontrato un problema nel recupero dei dati da un servizio inserito nella vista personale. Ho un servizio definito come taleAngularJS Carica dati dal servizio
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;
});
e il mio controller
function NavigationCtrl($scope, $http, nukeService){
/*$http.get('nukes/nukes.json').success(function(data) {
$scope.nukes = data;
});*/
$scope.nukes = nukeService.getNukes();
}
Se uso il $ http.get dal controllore dei dati popola bene, tuttavia, se provo a chiamare i dati il servizio, non ottengo nulla. Capisco che la query sia asincrona, ma sto avendo difficoltà a capire come popolare la variabile $ scope una volta che i dati vengono restituiti. Potrei usare $ rootscope per trasmettere un evento e ascoltarlo nel controller, ma questo non sembra il modo corretto per farlo. Gradirei davvero qualche consiglio su come farlo nel modo corretto.
che ha funzionato, ma posso chiedere perché? Presumo che abbia qualcosa a che fare con .data è un contenitore per i dati JSON invece di provare a passarlo direttamente? A proposito, grazie per la pronta risposta! – jamesamuir
se funziona si prega di contrassegnare la risposta come accettato –
contrassegnato come risposta. grazie per la spiegazione. – jamesamuir