javascript - Angular 1.5 - 在具有特定属性的最后一个元素之后插入自定义元素

标签 javascript angularjs angularjs-ng-repeat

假设我有以下代码:

<li ng-repeat="task in todoList">
    {{task.name}}
</li>

假设这是我的数据集(假设它是按时间排序的,从现在到将来):

var todoList = [ { name : 'Work hard', when : 'Today'}, { name : 'Play hard', when : 'Today'}, { name : 'Relax hard', when : 'This week'}, ]

如何在 ng-repeat 中检测当前重复项是设置为 Today 时具有该属性的最后一项?

所以我会用这样的东西结束

<li ng-repeat="task in todoList">
    {{task.name}}
</li>
<!-- If last of current period, then show this -->
<li>
    <h3>Next period</h3>
</li>

最佳答案

您可以尝试按when 对数据进行分组,然后在结果集上重复:

<ul ng-repeat="(when, tasks) in todoList | groupBy: 'when'">
  When: {{ when }}
  <li ng-repeat="task in tasks track by $index">
    <span ng-hide="$last">{{task.name}}</span>
    <h3 ng-show="$last">Next period</h3>
  </li>
</ul>

编辑 1:

如果只想显示今天的数据,可以直接过滤掉todoList,然后渲染:

<li ng-repeat="task in todoList | filter:{ when: 'Today' }">
  <span ng-hide="$last">{{task.name}}</span>
  <h3 ng-show="$last">Next period</h3>
</li>

关于javascript - Angular 1.5 - 在具有特定属性的最后一个元素之后插入自定义元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47347979/

相关文章:

javascript - 具有多个值的键/值对

javascript - jQuery .click 事件在页面加载时运行

javascript - AngularJS ctrl.$isEmpty 返回值而不是 bool 值

html - 有没有办法缩小 Material Design (AngularJS) <md-input> 元素?

javascript - 解析 AngularJS 客户端错误

javascript - ngFilter 等于 2 var Angular

javascript - 如何在单击按钮时从 ng-repeat 的特定列过滤 GridView 数据

javascript - Angular : Why is my watch not firing?

javascript - 将 HTML <select> 元素保存到变量中而不创建数组

javascript - 如何将 bootstrap 4 模态用作 "block ui"- 阻止输入并显示 "wait a minute.."标签的模态屏幕?