我遇到了一个非常奇怪的错误,虽然我认为它可能很容易修复,我似乎无法找到解决方案,而不是在角度文档或堆栈溢出中: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);
我希望我清楚,谢谢
答案 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;
});
感谢所有帮助