app.service('customersService', function ($http) {
this.getCustomer = function (id) {
$http({
method: 'GET',
url: '/getCustomer',
params: {id: id},
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
}).success(function(data) {
console.log(data);
return data;
})
};
});

无法从服务获取控制器中的数据 此代码的问题是当我尝试运行此
时customersService.getCustomer(customerID).then
它会产生如下错误:
angular.js:13294 TypeError:无法读取属性'然后'未定义的。
主要是生成对服务的调用,如果我尝试在服务中的控制台上打印结果,那么数据就在那里。但是我无法在控制器中获取数据。
答案 0 :(得分:2)
您收到该错误,因为您没有从$http
GET请求返回承诺。
像这样编辑你的代码:
app.service('customersService', function ($http) {
this.getCustomer = function (id) {
return $http({
method: 'GET',
url: '/getCustomer',
params: {id: id},
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
});
};
});
然后在控制器中使用.then()
处理响应数据。
app.controller('myController', function($scope, customerService){
customersService.getCustomer(customerID)
.then(function(response){
$scope.data = response;
})
})
答案 1 :(得分:0)
您只是忘记返回$ http承诺,这就是返回@Override
public void onClick(View v) {
// Do something with item at mItems.getAdapterPosition() -1
}
的原因。您需要执行以下操作:
undefined
答案 2 :(得分:0)
尝试给定代码。
app.service('customersService', function ($http) {
var getCustomer = function (id) {
return $http({
method: 'GET',
url: '/getCustomer',
params: {id: id},
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
})
};
var customersService = {
getCustomer: getCustomer
}
return ProfileService;
});