AngularJS订购集合

时间:2017-07-10 18:16:49

标签: angularjs angular-filters

我有一个简单的收件箱表,其中包含senderdatesender属性的邮件。当单击对应的表头时,我希望此表可以按照这些属性中的每一个进行排序。现在我只是尝试按<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'过滤器,但表中没有任何变化。我的代码出了什么问题?

HTML Code Snippet:

$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');
    }
}

AngularJS控制器:

aws_instance

1 个答案:

答案 0 :(得分:1)

在应用过滤器和语法之后应该分配给$ scope.mails

   $scope.mails = $filter('orderBy')($scope.mails , 'sender', false);