Ich versuche, einen einfachen Controller einzurichten, der einen asynchronen http-Aufruf unter Verwendung eines Dienstes ausführt. Ich habe etwas sehr ähnliches für einen anderen Controller eingerichtet, den ich geschrieben habe, aber aus irgendeinem Grund funktioniert dieser nicht. Die console.log ($ scope.art); Zeile im then() - Block gibt die korrekten Daten aus, aber sobald sie außerhalb des then() - Blocks ist, ist $ scope.art undefiniert. Warum sollte das sein? Ich bin sehr verwirrt!
app.controller('FeedbackController', ['$scope','getArt', function($scope, getArt) {
var art = getArt();
art.then(function(result) {
$scope.art = result;
console.log($scope.art);
}, function(reason) {
$scope.error = reason;
});
console.log($scope.art);
}])
.factory('getArt', ['$http', '$q', function($http, $q) {
return function() {
var deferred = $q.defer();
$http.post("/php/getArt.php")
.success(function (response) {
if (response == "nope") {
deferred.reject("Whoopsie! Something seems to have gone wrong.");
} else {
deferred.resolve(response);
}
})
.error(function() {
deferred.reject("There seems to be an issue with your connection.");
});
return deferred.promise;
};
}]);
Vielen Dank !!
oh jeez louise Ich bin ein Narr erklärt! das macht sehr viel Sinn. Danke! –
Willkommen zu Javascript & Async @ CarterScottDavis :) –