AngularJS:使用$ resource时出错 - $ save和$ query

时间:2016-08-10 06:12:53

标签: angularjs angular-resource

我有一个角度服务,它调用Play服务器并获取JSON对象。下面是我的代码片段。

service.js

angular.module('testApp.services',[]).factory('testService',function($resource){

var service = {
    getData : getData
};
function getData(){
    return $resource('http://localhost:9000/testRead',{}, {
            save: {
                    method: 'POST',
                headers: {
                        'Auth-Token': 'B1016693LCAP8154'
                }
            }
    });
}; 
return service;
});

controller.js

angular.module('testApp.controllers',['testApp.services']).controller('TestController',function($scope, testService){

    testService.getData().save().$promise.then(function(data){
         $scope.output = angular.fromJson(JSON.stringify(data));
         console.log("Output : ", $scope.output);
  });

});

在控制器中,当我使用testService.getData().query().$promise.时,一切正常。但是当我将其更改为testService.getData().save().$promise.时,会抛出错误:

  

错误:[$ resource:badcfg]资源配置错误

我从播放中返回JSON类型。我读到save()期望一个对象和query()一个Array类型?为什么它不起作用呢?当我在浏览器中检查时,我在响应中获取JSON数据。但是在控制器中我无法使用它。请参阅下面的图片。

错误:

enter image description here

浏览器响应:

enter image description here

1 个答案:

答案 0 :(得分:0)

您提供的错误似乎不是我的整个日志。所以我只能在这里做出假设。

默认情况下, $ resource 服务的save方法需要响应为JSON对象,并且您的响应是数组的JSON对象,因此会引发错误

如果是这种情况,您可以通过将 isArray 添加到您的配置中来快速解决此问题:(同样的修补程序可以应用于其他 $ resource 功能,例如< strong>获取,删除查询

save: {
            method: 'POST',
            headers: {
                'Auth-Token': 'B1016693LCAP8154'
            },
            isArray: true
        }