预期的响应包含一个数组但得到了一个GET

时间:2015-10-09 05:19:16

标签: arrays angularjs get angularjs-resource

我到处研究过这个问题但没有解决方案对我有用。 像这样:Error: [$resource:badcfg] Error in resource configuration. Expected response to contain an array but got an object?

我仍然收到错误配置的错误。有人可以帮我解决这个问题,谢谢。

厂:

    angular.module('lensApp')
       .factory('LensResource', function($resource) {
        return $resource(
            'api/lens',
             null,
             {'query': {method:'GET', isArray: false}}
        );
    });

服务:

var params = {};
params['id[]'] = [1,2];
LensResource.query(params, function(data) {
    console.log(data);     
 }, function(error) {
       console.log("error");
 });    

1 个答案:

答案 0 :(得分:0)

您的工厂出现错误。您不应该将null作为第二个参数传递。

$resource paramDefaults中是可选的,它只能是一个对象。如果你在这里传递null,那么angular不会被视为paramDefaults。它会假设没有paramDefaults而null是actions参数,而您的第三个参数将被视为options而不是actions。这样,$ resource将使用查询的默认实现,它需要数组。

要解决此问题,请传递空对象({})而不是null