【发布时间】:2016-07-22 07:40:56
【问题描述】:
我希望我的 $http.get 从我的服务到我的控制器的结果。
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);
});
}
})();
上面的代码结果给出了未定义的输出。 我想念什么?
【问题讨论】:
-
只是对您准备服务的方式发表评论。当服务被实例化时,您似乎正在调用检索反馈/列表。我认为这很糟糕,应该在请求信息时进行调用,即调用 loadAllItems 时。此外,我将从返回对象中删除函数包装器,并将所有功能放在一个名为 loadAllItems 的函数中。
标签: javascript angularjs angularjs-service angular-promise angularjs-http