使用AngularJS获取子数组的计数

时间:2016-05-24 13:53:54

标签: javascript arrays angularjs

基本上我正在制作一个带有角度的待办事项列表,我想要显示已经标记为已完成的项目数量我有一个列表的数组对象,每个列表都有一个名为todos的列表项集合,如下所示:

[{listName: "ESSENTIALS", newTodoName:"", newTodoQ:"0", todos: [
                        { taskName : "Comb" , quantity: 1,  isDone : false , id: "comb" }                                               ]},
{listName: "TOILETRIES", newTodoName:"", newTodoQ:"0", todos: [
                        { taskName : "Tooth Brush" , quantity: 1,  isDone : false , id: "toothbrush"},
                        { taskName : "Tooth paste" , quantity: 6,  isDone : false, id: "toothpaste" },
                        { taskName : "Deodorant" , quantity: 3, isDone : false, id: "deodorant" }
                                                                                    ]}];

所以我有两个ng-repeats ..一个重复列表然后另一个内部打印出每个列表项。我有一个H1并且在标题旁边我希望在记录总数旁边标记为isDone的项目为真,以显示您剩余的项目数量。正如你所看到的,我开始编写一个过滤器,但我相信它一直是错的:"语法错误:令牌' undefined'是意料之外的,期待[}]在[{4}]开始的表达式[(list.todos |)的列null处。"我不确定这意味着什么......我的第四个项目是空白吗?但我在那里有我所有的待办事项而且他们不是空白。我的过滤器是错误的吗?还是更好的方法呢?

  <div class='row' ng-repeat="list in lists">
        <h1 class='centerTitle'>{{list.listName}} <span class="listCounter"> {{ (list.todos | filter:{todos: {isDone: true}}: true).length }} / {{list.todos.length}}</span></h1>

      <ul ui-sortable="todoSortable" ng-model="list.todos">
                                        <li  ng-class="{taskDone: todo.isDone}" class="todoTask" ng-repeat="todo in list.todos | orderBy: 'isDone' "></li>
  <div>

1 个答案:

答案 0 :(得分:2)

你可以尝试:

<h1 class='centerTitle'>{{list.listName}} <span class="listCounter"> {{ (list.todos | filter: {isDone: true}).length }} / {{list.todos.length}}</span></h1>