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:
tornando al controller richiamo il service: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"); }
infine faccio questa verifica:codice:dataSvc.test().then(function(data){ $scope.vm.x = data; });
A questo punto ricevo nella console il contenuto completo di $scope.vm (quindi con all'interno x) seguito da undefined.codice:console.log($scope.vm, $scope.vm.x);
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

Rispondi quotando
