使用$ filter基于数组内对象的属性进行过滤

时间:2014-10-17 16:26:33

标签: javascript angularjs angularjs-filter

假设以下数据:

var roster = [
    {
        id: 1,
        attended: true,
        person: {printName: 'Larry'}},
    {
        id: 2,
        attended: false,
        person: {printName: 'Curly'}},
    {
        id: 3,
        attended: true,
        person: {printName: 'Moe'}}];

我正在尝试查找数组中对象为true的对象计数。我尝试过以下方法:

rosters.html:

{{ (roster | filter:{attended:true} ).length }}

名册-controller.js:

checkedInCount: function() {
    return $filter('filter')($scope.roster, attended.true).length;
}

html过滤器按预期工作,在此实例中返回2。但是,函数版本遇到错误ReferenceError: Can't find variable: attended。我认为我在功能中遗漏了一些微不足道的东西,但我不确定它是什么。

1 个答案:

答案 0 :(得分:2)

使用对象作为表达式:

return $filter('filter')($scope.roster, { attended: true }).length;