Kann nicht Ergebnis-Daten mit $http angularjs
Ich versuche, $http, aber warum es null zurück zu führen?
angular.module('myApp')
.factory('sender', function($http) {
var newData = null;
$http.get('test.html')
.success(function(data) {
newData = data;
console.log(newData)
})
.error(function() {
newData = 'error';
});
console.log(newData)
return newData
})
Konsole sagen: http://screencast.com/t/vBGkl2sThBd4. Warum meine newData erste null und dann die vorgegeben ist? Wie es zu tun richtig?
Hey, wenn meine Antwort war, was Sie wurden nach bitte akzeptieren Sie es, so dass es nicht für immer geöffnet bleiben. Prost!
InformationsquelleAutor Ilia | 2013-02-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als YardenST sagte
$http
ist asynchron, so dass Sie brauchen, um sicherzustellen, dass alle Funktionen oder Anzeige Logik, die davon abhängig sind die Daten, die zurückgegeben wird, indem Sie Ihre$http.get()
, wird handle auch entsprechend. Eine Möglichkeit, dies zu erreichen, nutzen Sie das "Versprechen", dass$http
gibt:Plunkr Demo
Super Antwort!! Ich werde fügen Sie diese auf meinem blog!! 🙂
Klicken Sie dann auf, bis Stimme; es ist, was es ist! 🙂
schon getan 🙂
Dies funktioniert auf jeden Fall, aber ich kann nicht glauben, dass dies der effizienteste Weg der Erstellung einer data factory in Eckig. So oder so, die OP sollte markieren Sie diese Antwort als korrekt.
InformationsquelleAutor GFoley83
Dieser JavaScript-code ist asynchron.
Wird ausgeführt, bevor das, was im inneren
success
So, in der ersten Zeit, die newData, null ist (setzen Sie ihn auf "null" sein)
Und wenn die http-Antwort zurückgegeben wird (im Erfolgs -), newData bekommt den neuen Wert.
Dies ist sehr Häufig in Javascript, sollten Sie alles tun, Ihre Arbeit innerhalb der
success
.InformationsquelleAutor YardenST