在我的controller.is中我有数组'arr'
喜欢这个:
$scope.arr = [
{block: 0},
{block: 1},
{block: 1},
]
我想使用block : 1
但不使用ng-repeat
来计算项目?
我试过了:
{{arr.lenght | filter:block == '1'}}
答案 0 :(得分:5)
试试这个:
{{ ( arr | filter: { block: 1 } ).length }}
arr | filter: { block: 1 }
将返回一个符合您条件的数组。
答案 1 :(得分:1)
这是使用过滤器
的示例<强> HTML 强>
<div ng-controller="MyCtrl">
Amount is {{(arr|amount)}}
</div>
<强>的Javascript 强>
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.arr = [
{block: 0},
{block: 1},
{block: 1},
]
}
myApp.filter("amount", function(){
return function(array){
var amount = 0;
for(var i = 0; i < array.length; i++){
if(array[i].block == 1)
amount+= 1;
}
return amount;
};
});
此处为jsFiddle示例