Sau*_*kar 2 javascript json angularjs
我在angular $ resource中遇到以下错误: 错误说明
Error: error:badcfg
Response does not match configured parameter:
Error in resource configuration for action `array`. Expected response to contain an object but got an {2}
Run Code Online (Sandbox Code Playgroud)
我按如下方式初始化了ng app:
var appRoot = angular.module('smapp', ['ngRoute', 'ui.bootstrap', 'ngResource']);
Run Code Online (Sandbox Code Playgroud)
服务:
appRoot.factory('ProgramsResource', function ($resource) {
return $resource('Home/Program', {}, { Program: { method: 'get', isArray: false } })
});
Run Code Online (Sandbox Code Playgroud)
在我的控制器中:
appRoot.controller('ProgramCtrl', function ($scope, ProgramsResource) {
$scope.searchPrograms = function () {
$scope.Programs = ProgramsResource.query(
{
TotalItems: $scope.TotalItems,
ItemsPerPage: $scope.ItemsPerPage,
PageNo: $scope.CurrentPage
});
};
$scope.TotalItems = 175;
$scope.ItemsPerPage = 20;
$scope.CurrentPage = 1;
$scope.searchPrograms();
});
Run Code Online (Sandbox Code Playgroud)
Json我从服务器发送响应:
{"TotalItems":175,"ItemsPerPage":20,"PageNo":5,"List":[{"Code":"MATH2014","Name":"Name1","Tags":"Tag1,Tag2"},{"Code":"MATH2015","Name":"Name2","Tags":"Tag1,Tag2"}]}
Run Code Online (Sandbox Code Playgroud)
对于json,angular $ response会抛出错误
但是如果我不在json中发送"List"数组并按如下方式发送简单的json,那么一切正常:
[{"TotalItems":0,"ItemsPerPage":0,"PageNo":0},{"TotalItems":0,"ItemsPerPage":0,"PageNo":0}}]
Run Code Online (Sandbox Code Playgroud)
我是棱角分明的新人,不知道我到底做错了什么.
而不是做
$scope.Programs = ProgramsResource.query(
使用
$scope.Programs = ProgramsResource.get(
queryfunction期望响应成为一个数组,而get期望一个对象.因为你正在返回对象使用get.
查询功能的默认设置是isArray:true.此标志有助于角度将您的响应反序列化为对象或数组.请参阅资源文档.
另请注意:
更改以下查询功能的默认设置时,如果未定义isArray为,则会遇到此错误true.因此,isArray: true在更改默认设置时始终添加query:
var res = $resource('/api/userinfoes/:Id', { Id: "@Id" },
{
'query': {
method:'GET',
headers: {
'Authorization': 'Bearer ' + token
},
isArray:true}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4604 次 |
| 最近记录: |