【问题标题】:Angular Js. How fix Error: $resource:badcfg Response does not match configured parameter角J。如何修复错误:$resource:badcfg 响应与配置的参数不匹配
【发布时间】:2014-12-27 12:25:57
【问题描述】:

我想使用 $resources 从 json 文件中获取数据,但我总是收到该错误。 但是,我可以使用 $http 来做到这一点,因此我认为我的服务设置有问题。

这是我的控制器:

$scope.serviceRes = serviceRes.get({fileName: 'services.json'}, function(svcs) {

});

这是我的服务

angular.module('myservices', ['ngResource'])
  .factory('serviceRes', ['$resource',
  function($resource){
    return $resource(':fileName', {}, {
      query: {method:'GET', params:{fileName:'services.json'}, isArray:false}
    });
  }]);

注意:我也已经尝试过使用isArray:true,但还是不行。

这是来自https://docs.angularjs.org/error/$resource/badcfg?p0=array 的错误解释:

当 $resource 服务期望响应可以反序列化为数组、接收对象或反之亦然时,会发生此错误。默认情况下,所有资源操作都需要对象,除了需要数组的查询。 要解决此错误,请确保您的 $resource 配置与从服务器返回的数据的实际格式匹配。

但不幸的是,我仍然不知道如何解决它。我已经看过类似的线程Error: [$resource:badcfg] Error in resource configuration. Expected response to contain an array but got an object?,但仍然无法解决。 有什么帮助吗?

编辑:

这是json文件

[
    {"name": "aaaa",
     "time": "3.00 PM",
     "desc": "Description 1",
     "cp": "John (0004 123 456)",
     "email":"email@email.com"},
    {"name": "bbbbb",
     "time": "12.00 PM",
     "desc": "Description 2",
     "cp": "John Doe (0414 141 414)",
     "email":"email2@yahoo.com"}
]

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

而不是使用serviceRes.get(...)方法,而是把serviceRes.<b>query</b>(...),在保持原参数不变的情况下,结果变成如下语句:

$scope.serviceRes = serviceRes.query({fileName: 'services.json'}, function(svcs) { });

正如$resource documentation 所说(查看“返回”部分):在我看来,query() 方法是将isArray 的值预设为true 的唯一方法 - 这意味着query 是保证在响应中返回数组的函数。

【讨论】:

  • 请在您的答案中添加更多详细信息。检查this关于写一个好的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-24
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 2013-12-17
  • 2020-11-16
相关资源
最近更新 更多