假设以下数据:

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


我试图找到出席的数组中的对象计数为真。我尝试了以下方法:

rosters.html:

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


rosters-controller.js:

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


html过滤器按预期工作,在此实例中返回2。但是,函数版本遇到错误ReferenceError: Can't find variable: attended。我假设函数中缺少一些琐碎的东西,但是我不确定它是什么。

最佳答案

使用对象作为表达式:

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

10-05 21:08