Ich versuche, $http.get()
in einer Fabrik zu verwenden, um einen Wert abzurufen, der in einer Steuerung weiterverarbeitet wird.Warten bis Erfolg oder Fehler auftritt
appFac.factory('CompletedJobs',function($http){
var result;
return{
getJobs : function(webserviceurl){
$http.get(webserviceurl).success(function(data){
result = data;
})
.error(function(err){
result = '';
});
return result;
}
}
})
appCtrl.controller('Ctrl',function(CompletedJobs){
var data = CompletedJobs.getJobs('some url');
// some other logic based on data
});
Aufgrund der Asynchronität, durch die Zeit, die Daten in der Factory-Methode zur Verfügung stehen, ist es von keinerlei Nutzen für die Steuerung, weil die Factory-Methode bereits undefined
zurückgekehrt ist.
Kann mir jemand helfen, herauszufinden, wie man die Daten von der Fabrikmethode bekommt, damit es vom Controller verwendet werden kann?
Mögliches Duplikat von [Wie gebe ich die Antwort von einem asynchronen Anruf zurück?] (Http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous- Anruf) – Phil