Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度1.6-ng重复orderby和groupby项目_Javascript_Angularjs - Fatal编程技术网

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
(在消息上方执行此操作)@DenisTsoi
chatDetails
是范围变量。本例中由指令创建。
orderby:'date'| groupBy:'author'
-看,我对管道的评论并不能解决您的问题,因为它需要一个自定义过滤器-我在提到之前已经看过了(很明显,因为下面没有答案)-这是因为Utkarsh链接的
角度过滤器
(可重用过滤器库)遇到了此问题。这不是一个小问题。祝你好运。这只会解决顺序问题,但无助于分组。不过还是要谢谢你!
<div class="message" ng-repeat="msg in chatDetails.msgList | orderBy: 'date'">
    <p>{{ msg.text }}</p>
</div>