[英]AngularJS $resource only won't return data
因此,对于工厂,我正在使用$ resource进行RESTful GET请求,而我没有收到数据。
最初,我收到$ promise和$ resolved:false。 $ resolved最终成为现实。
我知道网址和标头工作,因为我在高级客户端chrome扩展程序中测试它们,它工作正常。 数据显示和一切。
这是我的工厂设置,下面是我在控制器中引用它以将其存储在范围变量中。
$ resource返回一个两级对象。 在你的控制器中,它需要像这样处理:
$scope.terms = GetValues.get();
$scope.terms.$promise.then(function(data){
//This is where things that happen upon success go
}, function(data){
//This is where things that happen upon error go
});
您也可以编写您的服务,如下所示返回并取消控制器的$ promise:
.factory('GetValues', ['$resource', function($resource){
// search term is :text
return $resource(apiURL, {}, {
get:{
method: 'GET',
isArray:true,
headers: {
'x-auth-token': 'xxxxx',
'x-auth-user': 'xxxxx'
}
}
}).$promise;
}]);
您需要利用$resource
的回调:
GetValues.get({}, function(data) {
$scope.terms = data;
})
$ resource构造函数返回实际调用的承诺。 您必须在控制器中设置promise的解析回调。
GetValues.get({}, '', function (getResult) {
// do something with array
alert(getResult);
}, function (error) {
console.error('Error getting values', error);
});
第二个函数是请求的错误回调。
另外,尝试使用其他名称注册该方法,因为覆盖期望对象而不是数组的本机get并不是很“好”:
return $resource(apiURL,{},{ getValues:{
method: 'GET',...
并使用它来调用它
GetValues.getValues().then(...
PD:没有必要显式返回。$ promise
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.