如何在Angularjs中按属性计算项目数?

时间:2015-04-10 18:31:22

标签: angularjs

在我的controller.is中我有数组'arr'

喜欢这个:

$scope.arr = [
   {block: 0},
   {block: 1},
   {block: 1},
]

我想使用block : 1但不使用ng-repeat来计算项目? 我试过了:

{{arr.lenght | filter:block == '1'}}

2 个答案:

答案 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示例