Javascript Angular.js错误:虽然isArray设置为false,但预期响应包含数组,但得到了一个对象

Javascript Angular.js错误:虽然isArray设置为false,但预期响应包含数组,但得到了一个对象,javascript,angularjs,Javascript,Angularjs,我有一个角度资源工厂,它返回一个JSON对象,如下所示: angular.module('myApp').factory('resourceProvider', function ($resource, $http) { return { Attribute: $resource('http://localhost:49980/api/Attribute/:id', { id: '@id' }, { query: { method: 'GET', isArray: false } }),

我有一个角度资源工厂,它返回一个JSON对象,如下所示:

angular.module('myApp').factory('resourceProvider', function ($resource, $http) {
return {
Attribute: $resource('http://localhost:49980/api/Attribute/:id', 
{ id: '@id' }, { query: { method: 'GET', isArray: false } }),     
};
});
当我像这样“查询”资源时:

resourceProvider.Attribute.query(function (data) {
  $scope.variable = data;
});
我得到:错误:[$resource:badcfg]资源配置错误。预期响应包含数组,但获取了对象


这对我来说真的很奇怪,因为我将isArray设置为false。此外,该代码在其他PC上运行良好。因此,如果有人知道错误可能来自何处,我将非常感激。

问题1:为什么使用angulars$resource服务而不是$http服务
问题2:如果您想使用$resource,为什么不重写$resource的默认行为

我不确定,但是,你有打字错误吗

return {
Attribute: $resource('http://localhost:49980/api/Attribute/:id', 
{ id: '@id' }, { query: { method: 'GET', isArray: false } }),     
};

问题解决了。db身份验证出现问题,错误消息碰巧是JSON对象。因此,实际上返回了一个JSON对象,而不是数组

你不能只给一个对象属性分配一个方法,你需要创建一个函数并返回它。对不起,我想你误解了我的意思。我在查询资源的地方添加了代码谢谢你的回答。但是你一定读过头了,代码实际上没有什么问题。该项目在其他PC上运行良好。错误只发生在我的计算机上(在我从subversion签出后)。所以我的问题是,是否有人知道问题可能来自哪里。我也有这个确切的场景,但是JSON对象是服务器错误的预期响应。如果
$resource
可以配置为在不通过Angular的
$log
服务发送错误的情况下处理此问题,那就太好了。它尤其给我们的测试增加了噪音,我们故意确认错误处理应该如何工作。