AngularJS:使用 $resource - $save 和 $query 时出错
AngularJS : Error while using $resource - $save and $query
我有一个 angular 服务,它调用 Play 服务器并获取 JSON 对象。下面是我的代码片段。
service.js
angular.module('testApp.services',[]).factory('testService',function($resource){
var service = {
getData : getData
};
function getData(){
return $resource('http://localhost:9000/testRead',{}, {
save: {
method: 'POST',
headers: {
'Auth-Token': 'B1016693LCAP8154'
}
}
});
};
return service;
});
controller.js
angular.module('testApp.controllers',['testApp.services']).controller('TestController',function($scope, testService){
testService.getData().save().$promise.then(function(data){
$scope.output = angular.fromJson(JSON.stringify(data));
console.log("Output : ", $scope.output);
});
});
在控制器中,当我使用 testService.getData().query().$promise.
时,一切正常。但是当我将其更改为 testService.getData().save().$promise.
时,它会抛出一个错误:
Error: [$resource:badcfg] Error in resource configuration
我从游戏中返回一个 JSON 类型。我读到 save() 需要一个对象,而 query() 需要一个数组类型?为什么它不工作呢?当我在浏览器中签入时,我在控制器的 response.But 中获取 JSON 数据,但我无法使用它。请看下面的图片。
错误:
浏览器响应:
你提供的错误似乎不是我的全部日志。所以我这里只能做一个假设。
默认情况下,$resource 服务的保存方法期望响应是一个 JSON 对象,而您的响应是 一个数组 个 JSON 个对象,因此会引发错误。
如果是这种情况,您可以通过将 isArray 添加到您的配置中来快速修复它:(同样的修复可以应用于其他 $resource函数,例如get、remove、query)
save: {
method: 'POST',
headers: {
'Auth-Token': 'B1016693LCAP8154'
},
isArray: true
}
我有一个 angular 服务,它调用 Play 服务器并获取 JSON 对象。下面是我的代码片段。
service.js
angular.module('testApp.services',[]).factory('testService',function($resource){
var service = {
getData : getData
};
function getData(){
return $resource('http://localhost:9000/testRead',{}, {
save: {
method: 'POST',
headers: {
'Auth-Token': 'B1016693LCAP8154'
}
}
});
};
return service;
});
controller.js
angular.module('testApp.controllers',['testApp.services']).controller('TestController',function($scope, testService){
testService.getData().save().$promise.then(function(data){
$scope.output = angular.fromJson(JSON.stringify(data));
console.log("Output : ", $scope.output);
});
});
在控制器中,当我使用 testService.getData().query().$promise.
时,一切正常。但是当我将其更改为 testService.getData().save().$promise.
时,它会抛出一个错误:
Error: [$resource:badcfg] Error in resource configuration
我从游戏中返回一个 JSON 类型。我读到 save() 需要一个对象,而 query() 需要一个数组类型?为什么它不工作呢?当我在浏览器中签入时,我在控制器的 response.But 中获取 JSON 数据,但我无法使用它。请看下面的图片。
错误:
浏览器响应:
你提供的错误似乎不是我的全部日志。所以我这里只能做一个假设。
默认情况下,$resource 服务的保存方法期望响应是一个 JSON 对象,而您的响应是 一个数组 个 JSON 个对象,因此会引发错误。
如果是这种情况,您可以通过将 isArray 添加到您的配置中来快速修复它:(同样的修复可以应用于其他 $resource函数,例如get、remove、query)
save: {
method: 'POST',
headers: {
'Auth-Token': 'B1016693LCAP8154'
},
isArray: true
}