Ich möchte von meinem $ http.get von meinem Dienst zu meinem Controller.Verwenden Sie die Ausgabe von Diensten zu Controllern
myserviceSample.js
function messagesService($q,$http){
var messages;
$http({
method: 'GET',
url: 'http://api.com/feedback/list'
})
.then(function success(response){
messages = response.data;
console.log(messages);
},function error(response){
console.log('error'+ response);
});
console.log(messages);
return {
loadAllItems : function() {
return $q.when(messages);
}
};
}
})();
mycontrollerSample.js
function MessagesController(messagesService) {
var vm = this;
vm.messages = [];
messagesService
.loadAllItems()
.then(function(messages) {
console.log(messages);
vm.messages = [].concat(messages);
});
}
})();
Die obigen Code Ergebnisse undefiniert Ausgang gibt. Was ich vermisse?
Nur ein Kommentar darüber, wie Sie den Dienst vorbereiten. Es sieht so aus, als ob Sie den Aufruf tätigen, um eine Rückmeldung/Liste abzurufen, wenn der Dienst instanziiert wird. Ich würde dies als schlecht betrachten, der Aufruf sollte erfolgen, wenn die Anfrage nach Informationen kommt, d. H. Wenn loadAllItems aufgerufen wird. Außerdem würde ich den Funktions-Wrapper aus dem Rückgabeobjekt entfernen und alle Funktionen in eine Funktion namens loadAllItems einfügen. –