使用Angular $ http,我从数据库中检索了一个模型。它是一个有主题的论坛对象。每个主题都有很多帖子。
我正在显示一个显示的网格|主题描述|帖子数量|最新帖子|
我有前两个工作,但我不知道如何获取最新帖子(最后一栏)的数据。帖子有一个DatePosted属性。我想向最新的帖子展示海报和标题等信息。
这是一个自定义过滤器还是更好的方法。
<div ng-controller="forumCtrl">
<h3>{{forum.ForumDescription}}</h3>
<h4></h4>
<table class="table table-condensed table-bordered table-hover table-striped">
<thead>
<tr>
<th>Topic</th>
<th>Threads</th>
<th>Latest Post</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="topic in forum.Topics">
<td>{{topic.TopicText}}</td>
<td>{{topic.Posts.length}}</td>
<td>{{Math.max(topic.Posts.PostDate)}}</td>
</tr>
</tbody>
</table>
答案 0 :(得分:1)
您可以在视图中使用orderBy
过滤器,也可以在$scope
中使用Posts
数组并返回最新的帖子,例如:
<!-- Approach 1 -->
<td>{{(topic.Posts | orderBy:'PostDate':true)[0].PostDate}}</td>
<!-- Approach 2 -->
<td>{{latestPost(topic.Posts).PostDate}}</td>
/* Approach 2 */
$scope.latestPost = function (posts) {
return posts.reduce(function (latest, current) {
return (current.PostDate > latest.PostDate) ? current : latest;
});
};
另请参阅此 short demo 。
<子>
备注:强>
1.您也可以定义和使用自己的过滤器
2.上述实施是演示,不考虑角落情况,例如:空Posts
等
子>