仅在ng-repeat列表中显示唯一的日期值

时间:2014-04-05 15:58:37

标签: javascript css angularjs angularjs-ng-repeat

我有一个由ng-repeat生成的无序列表。在每个列表项中,我有一个月标题和一篇博文。

enter image description here

我只想显示每个月名称的一个实例,但是如果没有一些非常hacky的jQuery,我可以找到一个很好的方法。

有没有办法可以在Angular中以某种方式检测这个值并使用ng-hide只显示每种类型的第一个?

2 个答案:

答案 0 :(得分:2)

也许这样的事情会有所帮助,前提是您的同月帖子相邻。如果他们不是,也许可以完全显示日期:

plnkr code example

基本上:

<li ng-repeat="post in model.blogPosts">
    <span ng-show="model.blogPosts[$index - 1].date !== post.date">{{post.date}}</span>
    <br>
    <span>{{post.post}}</span>
</li>

编辑:

(抱歉默认的ul li样式,如此丑陋)

答案 1 :(得分:0)

您应该修改数据以实现此目的。将您的帖子列表转换为像

这样的对象
$scope.postsByMonth = {
  October: [//...october posts],
  November: [//...november posts],
  //...
};

然后你可以沿着这些方向做点什么

  <li ng-repeat-start="month, posts in postsByMonth">month<p>posts[0]</p></li>
  <li ng-repeat-end ng-repeat="post in posts.slice(1)"><p>post</p>