我有一个由ng-repeat生成的无序列表。在每个列表项中,我有一个月标题和一篇博文。
我只想显示每个月名称的一个实例,但是如果没有一些非常hacky的jQuery,我可以找到一个很好的方法。
有没有办法可以在Angular中以某种方式检测这个值并使用ng-hide只显示每种类型的第一个?
答案 0 :(得分:2)
也许这样的事情会有所帮助,前提是您的同月帖子相邻。如果他们不是,也许可以完全显示日期:
基本上:
<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>