我正在尝试对我的评论进行排序。我希望 last 评论是第一个评论,其余的应该由id
订购。
以下是id
对它们进行排序,但我需要将最后一条评论放在最上面。
<div ng-repeat="comment in comments | orderBy:'-id'"></div>
如果我们有数字1, 2, 3, 4
,则输出应为4, 1, 2, 3
。 请注意,这不是按时间顺序。
我怎样才能做到这一点?
答案 0 :(得分:1)
(现在回答重写,我理解这个问题)。
您需要使用自定义排序功能。
max_comment_id = comments.reduce(function(p,c){ return Math.max(p,c.id)},0);
comments.sort(function(a,b){
if (a.id == max_comment_id){return -1};
if (b.id == max_comment_id){return 1};
return a.id - b.id;
});
答案 1 :(得分:1)
你可以用两个div来做: -
假设数据: -
$scope.comments = [
{id: 1, comment: '1'},
{id: 2, comment: '2'},
{id: 3, comment: '3'},
{id: 4, comment: '4'}
]
<div ng-controller="MyCtrl">
<div ng-repeat="comment in comments|orderBy:'-id'|limitTo:1">
{{comment.comment}}
</div>
<div ng-repeat="comment in comments | orderBy:'id'|limitTo:comments.length-1">{{comment.comment}}</div>
</div>
此解决方案可能并不完美,但它可以为您服务。