错误:[$resource:badcfg]资源配置错误.响应应包含一个数组,但得到的却是一个对象



就angular而言,我是一个完全的傻瓜,刚刚完成了代码学校教程,我已经达到了我的第一个障碍。

我正在获取Error: [$resource:badcfg] Error in resource configuration. Expected response to contain an array but got an object

这是我的代码:

var bulletinApp = angular.module('bulletinApp', ['ngResource']);
bulletinApp.controller('PostsController', ['$scope', 'Post', function($scope, Post) {
    $scope.heading = 'Welcome';
    $scope.posts = Post.query();
    $scope.newPost = {
        title: 'Test Post'
    }
}]);
bulletinApp.factory('Post', ['$resource', function($resource) {
    return $resource('/posts');
}]);

我在这里找到了答案:在AngularJS/Rrails 中使用$resource.query()函数时,资源配置出错

这意味着我应该在我的资源声明中添加以下内容:

'query': {method: 'GET', isArray: false }

问题是我不知道该把这个添加到哪里,甚至不知道这是否是我的问题所在?

编辑:

bulletinApp.factory('Post', ['$resource', function($resource) {
  return $resource('/posts', {'query': {method: 'GET', isArray: false}});
}]);

在这之后,我仍然收到错误。同样在教程中,没有必要这样做,我已经大致遵循了这一点,为什么get方法会得到一个对象而不是一个数组?

'/posts'之后添加{}

bulletinApp.factory('Post', ['$resource', function($resource) { 
    return $resource('/posts', {}, {'query': {method: 'GET', isArray: false}}); 
}]);

有关详细信息,请参阅本文。

Get的结果是数组还是对象?如果它是一个数组,则设置isArray=true,否则设置isArray=false,就像上面中的那个人所说的那样

bulletinApp.factory('Post', ['$resource', function($resource) { 
return $resource('/posts', {}, {'query': {method: 'GET', isArray: false/*true*/}}); 
}]);

注意IsArray与IsArray不同。或者,如果您通过json获取数据,请将*.json添加为url

控制台中错误消息的下一行是错误的完整描述的url:

Error: [$resource:badcfg] Error in resource configuration. Expected response to contain an object but got an array
http://errors.angularjs.org/1.2.28/$resource/badcfg?p0=object&p1=array

根据链接的页面,要么你的服务器没有返回你认为的结果,要么你需要告诉$resource从服务器获得一个数组。

相关内容

最新更新