繁体   English   中英

AngularJS $资源只会返回数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM