Salve a tutti,
probabilmente questo è una domanda piuttosto banale, ma essendo autodidatta ho delle lacune mostruose e, a volte, mi capita di imbattermi in questi piccoli intoppi.
Faccio il quadro della situazione:
creo un oggetto:
$scope.vm = {}
richiamo con un service un file json:
codice:
function promise(url) {
var deferred = $q.defer();
$http.get(url).success(function(data) {
deferred.resolve(data);
}).error(function(){
deferred.reject();
});
return deferred.promise;
}
test: function(){
return promise(path + "nazioni.json");
}
tornando al controller richiamo il service:
codice:
dataSvc.test().then(function(data){
$scope.vm.x = data;
});
infine faccio questa verifica:
codice:
console.log($scope.vm, $scope.vm.x);
A questo punto ricevo nella console il contenuto completo di $scope.vm (quindi con all'interno x) seguito da undefined.
Quindi, la mia questione è, perché vedo il primo (con all'interno il secondo), ma non il secondo puro e semplice? e come faccio a recuperare il valore di x senza dover fare necessariamente una cosa del genere:
codice:
dataSvc.test().then(function(data){
$scope.vm.x = data;
console.log($scope.vm.x);});
?
Grazie mille in anticipo per la collaborazione!
Ciao