AngularJS" $ resource:badcfg"错误

时间:2014-04-21 20:42:18

标签: json angularjs

我遇到了一个非常奇怪的错误,虽然我认为它可能很容易修复,我似乎无法找到解决方案,而不是在角度文档或堆栈溢出中:S < / p>

代码摘要:将ajax请求发送到服务器,使用ng-resource检索格式为JSON的数据。当存在单个JSON对象时它可以正常工作,但是当我有多个JSON对象时,例如:

        {
            "letters": [
                {}
            ],
            "words": [
                {}
            ]
        }

它会抛出badcfg错误。

我不明白为什么以及如何解决它。

        app.factory('getWords', ['$resource',
      function ($resource, $cacheFactory) {
        return {
            all: $resource('/lane/api/getWords/:letter', {
                letter: '@letter'
            }, {
                'get': {
                    method: 'GET',
                    cache: $cacheFactory
                },
                'query': {
                    method: 'GET',
                    isArray: false,
                    fomrat: 'JSON'
                }
            })
          }]);

我用来触发该服务并访问该数据的代码如下:

       $scope.words = getWords.all.query({letter: $scope.letter});
       console.log($scope.words);console.log($scope.words.words);

我希望我清楚,谢谢

1 个答案:

答案 0 :(得分:0)

如果有人正在经历这个明显的难题,不要害怕解决方案很简单,大笑几下之后大声笑,看起来你要做的就是确保将isArray设置为false(在我的情况下,我设置在Query方法上为false。

然后,在调用该服务时,请确保使用(回调?)函数来捕获返回的数据并允许您访问其中的对象。

也许经验丰富的程序员可以解释我想要解释的比我更好的内容:)

这是工作:

app.factory('getWords', ['$resource', function($resource, $cacheFactory){

        return {

    all: $resource('/lane/api/getWords/:letter', {letter: '@letter'}, {
        'get': { method:'GET', cache: $cacheFactory },
        'query': { method:'GET', cache: $cacheFactory, isArray:false}
        }),
      find: $resource('/lane/api/getWords/:word', {word: '@word'}, {
        'get': { method:'GET', cache: $cacheFactory },
        'query': { method:'GET', cache: $cacheFactory, isArray:true }
        })
      }

}]);

当您想通过此服务访问数据时(getWords)

  getWords.all.query({letter: $scope.letter}, function (data) {
  $scope.words = data.words;
  });

感谢所有帮助