Javascript 角度1.6-ng重复orderby和groupby项目
因此,我想要实现的是:Javascript 角度1.6-ng重复orderby和groupby项目,javascript,angularjs,Javascript,Angularjs,因此,我想要实现的是: 循环浏览消息数组(ng repeat) 按日期对邮件排序 然后将当前消息与上一条消息分组,如果作者匹配(存储在同一div元素中) 如果当前邮件的作者与以前的作者不匹配,则创建新的div 继续循环 我被困在这里: <div class="message" ng-repeat="msg in chatDetails.msgList"> <p>{{ msg.text }}</p> </di
- 循环浏览消息数组(ng repeat)
- 按日期对邮件排序
- 然后将当前消息与上一条消息分组,如果作者匹配(存储在同一div元素中)
- 如果当前邮件的作者与以前的作者不匹配,则创建新的div
- 继续循环
<div class="message" ng-repeat="msg in chatDetails.msgList">
<p>{{ msg.text }}</p>
</div>
以某种方式期望的结果:
<div class="message-list">
<div class="message-group" data-author="1">
<div class="message">
<p>hola</p>
</div>
<div class="message">
<p>ciao</p>
</div>
</div>
<div class="message-group" data-author="0">
<div class="message">
<p>hola</p>
</div>
</div>
<div class="message-group" data-author="1">
<div class="message">
<p>hola</p>
</div>
<div class="message">
<p>hola</p>
</div>
</div>
</div>
你好
再见
你好
你好
你好
我相信“orderBy”可以解决您的问题
它看起来像:
<div class="message" ng-repeat="msg in chatDetails.msgList | orderBy: 'date'">
<p>{{ msg.text }}</p>
</div>
{{msg.text}
如果您的msg对象有一些日期或索引值,您可以按该数字排序。是否将
chatDetails
传递给控制器?您可以通过添加以下html
(在消息上方执行此操作)@DenisTsoichatDetails
是范围变量。本例中由指令创建。orderby:'date'| groupBy:'author'
-看,我对管道的评论并不能解决您的问题,因为它需要一个自定义过滤器-我在提到之前已经看过了(很明显,因为下面没有答案)-这是因为Utkarsh链接的角度过滤器
(可重用过滤器库)遇到了此问题。这不是一个小问题。祝你好运。这只会解决顺序问题,但无助于分组。不过还是要谢谢你!
<div class="message" ng-repeat="msg in chatDetails.msgList | orderBy: 'date'">
<p>{{ msg.text }}</p>
</div>