角度JS控制器与JSON阵列的对象过滤器
问题描述:
我有以下种类的JSON,我想找到与JSON的Status : 1
对象的数量,我已经尝试了下面的方法,它不工作。角度JS控制器与JSON阵列的对象过滤器
而且我知道NG-过滤器需要仅适用于数组,但我没有找到一个方法来做到这一点在下面的JSON数据,有人可以帮助我
预期我得到错误,但如何解决这个问题在我的情况
[filter:notarray] Expected array but received:
在下面的JSON数据正如你看到的我有阵列阵列,我应该得到的 伯爵状态值为1
期望输出
计数第一阵列的:第二阵列的1个 计数:1
JSON数据
[
[{
"id": 252323,
"orderId": 223505,
"status": 1,
"executedOn": "13/Sep/17",
"executedBy": "Person A",
"executedByDisplay": "Person A",
"cycleId": 3994,
"cycleName": "Cycle A",
"versionId": 21291,
"versionName": "Version A",
"issueKey": "Key-12561"
}],
[{
"id": 253077,
"orderId": 224047,
"status": 1,
"executedOn": "26/Sep/17",
"executedBy": "Person B",
"executedByDisplay": "Person B",
"cycleId": 4012,
"cycleName": "Cycle B",
"versionId": 22912,
"versionName": "Version B",
"issueKey": "Key-12580"
}, {
"id": 253076,
"orderId": 224046,
"status": 2,
"executedOn": "20/Sep/17",
"executedBy": "Person B",
"executedByDisplay": "Person B",
"cycleId": 4012,
"cycleName": "Cycle B",
"versionId": 22912,
"versionName": "Version B",
"issueKey": "Key-12578"
}, {
"id": 253075,
"orderId": 224045,
"status": 1,
"executedOn": "20/Sep/17",
"executedBy": "Person B",
"executedByDisplay": "Person B",
"cycleId": 4012,
"cycleName": "Cycle B",
"versionId": 22912,
"versionName": "Version B",
"issueKey": "Key-12582"
}, {
"id": 253074,
"orderId": 224044,
"status": 1,
"executedOn": "20/Sep/17",
"executedBy": "Person B",
"executedByDisplay": "Person B",
"cycleId": 4012,
"cycleName": "Cycle B",
"versionId": 22912,
"versionName": "Version B",
"issueKey": "Key-12584"
}],
[{
"id": 255168,
"orderId": 226138,
"status": 1,
"executedOn": "26/Sep/17",
"executedBy": "Person A",
"executedByDisplay": "Person A",
"cycleId": 4022,
"cycleName": "Cycle C",
"versionId": 21291,
"versionName": "Version A",
"issueKey": "Key-12617"
}]
]
:第三阵列的3 计数
Angular JS Code
var app = angular.module('studentApp', []);
app.controller('StudentCntrl', function($scope, $http, $filter) {
$http.get('data.json').then(function(response) {
$scope.value = response.data;
$scope.value.forEach(function(items) {
$scope.eachValue = items;
items.forEach(function(insideItems) {
passvalue = $filter('filter')(insideItems, function(inputs) {
if (inputs.status == '1')
console.log(inputs.length);
return inputs;
});
});
});
});
});
答
,你可以简单地使用java script array filter像
arr.filter(function(a){return a.status==1}).length
或者用角
$filter('filter')(v, function(vc) {return vc.status ==1}).length
由于这是我想要的!有没有什么办法,我可以实现与角js过滤相同的东西 – Batman
亚肯定检查更新的答案 – jitender
谢谢它的作品像魅力! – Batman