我有一个简单的收件箱表,其中包含sender
,date
和sender
属性的邮件。当单击对应的表头时,我希望此表可以按照这些属性中的每一个进行排序。现在我只是尝试按<div class="container">
<h2>Your Inbox</h2><br><br>
<table ng-show="showInboxTable" class="table table-hover">
<thead>
<tr>
<th>Mail</th>
<th ng-click="sortMailsSender()">Sender</th>
<th>Date</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="mail in mails">
<td>{{mail.mailtext}}</td>
<td>{{mail.sender}}</td>
<td>{{mail.date}}</td>
</tr>
</tbody>
</table>
</div>
属性来命令这个表。我正在使用AngularJS'orderBy'过滤器,但表中没有任何变化。我的代码出了什么问题?
$scope.sortMailsSender = function()
{
if ( !$window.sessionStorage.inboxCompare || $window.sessionStorage.inboxCompare == 'gt')
{
console.log('filter straight');
$filter('orderBy')($scope.mails, 'sender', false);
$window.sessionStorage.setItem('inboxCompare', 'lt');
}
else
{
console.log('filter reverse');
$filter('orderBy')($scope.mails, 'sender', true);
$window.sessionStorage.setItem('inboxCompare', 'gt');
}
}
aws_instance
答案 0 :(得分:1)
在应用过滤器和语法之后应该分配给$ scope.mails
$scope.mails = $filter('orderBy')($scope.mails , 'sender', false);