(Angular JS)如何过滤$http.如果响应是JSON对象数组,则通过传递参数获取
(Angular JS) How filter $http.get by passing params if the response is an array of JSON objects?
我正在向我的REST api发出$http GET
请求以获取项目列表。我想做的是使用param
选项过滤响应,只获得分配给特定人员的项目。
var config = {
withCredentials: true,
params: {
AssigneeId: 12423
}
};
$http.get(baseUrl + 'projects', config).then(function successCallback(response) {
//do things on success
}, function errorCallback(response) {
//do things on error
});
AssigneeId
字段是project
对象的属性。我遇到的问题是,$http.get
的响应是JSON
对象的数组,使param
无用。我的回复看起来像这样:
[{
ProjectName: 'project 1',
AssigneeId: 12311,
size: 5
}, {
ProjectName: 'project 2',
AssigneeId: 15232,
size: 4
}, {
ProjectName: 'project 3',
AssigneeId: 43123,
size: 2
}, {
ProjectName: 'project 4',
AssigneeId: 12423,
size: 6
}]
我想用param
做的是只得到'project 4'
作为对我的GET
请求的响应。我认为它不工作,由于响应是一个数组?还是我做错了什么?
正如@Kevin B所提到的,它必须得到服务器的支持。你需要和你的服务人员谈谈来解决这个问题,或者传递正确的参数。直到你的服务生把这个修好。你可以输入这个新代码
var assigneeId = 12423;
var config = {
withCredentials: true
};
$http.get(baseUrl + 'projects', config )
.then( successCallback(response){
var assignedProject = response.filter(function(o){
return o.AssigneeId === assigneeId;
}).map(function(o){
return o.ProjectName;
})[0];
}, errorCallback(response){
//do things on error
}
您可以在收到响应时进行过滤。
response = response.filter(function(a) {
return a.AssigneeId === config.params.AssigneeId;
}).map(function(a) {
return a.ProjectName;
})[0];
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象