【发布时间】:2016-09-30 23:28:44
【问题描述】:
工厂:
function thingyFactoryFunction($http) {
return {
search: function(city, state) {
$http({
method: 'POST',
url: 'http://localhost:7500/search',
data: {city: city, state: state}
}).then(function successCallback(res) {
return res
})
}
}
}
这是我的控制器。我希望控制器简单地从上面的工厂获取响应,因此我可以将 vm.thing 设置为等于承诺响应。但是,我不断收到错误消息,如果我再看到一次,我会发疯:'TypeError: Cannot read property 'then' of undefined'。
function thingyIndexControllerFunction(thingyFactory) {
var vm = this;
vm.city;
vm.state;
vm.search = function() {
thingyFactory.search(vm.city, vm.state).then(function(res) {
console.log(res);
})
}
}
【问题讨论】:
-
只需在
$http之前添加return -
首先,你不应该从你的控制器调用搜索工厂函数为thingyFactory.search而不是thingy.search?
标签: angularjs promise factory angular-controller