AngularJS orderby通过复选框进行筛选

AngularJS orderby filter by a check box

本文关键字:筛选 复选框 orderby AngularJS      更新时间:2023-11-25

我想使用带有复选框的angularJS排序过滤器以及按列排序。这对我来说很好:

<tr ng-repeat="player in players | orderBy:'id':true | rangeFilter:min:max">
  <td>{{player.id}}</td>
</tr>

我想用复选框来确定orderby。我该怎么做?

<input type="checkbox"> Order by id

可能会对您有所帮助。

var myapp = angular.module('app', []);
myapp.controller('Main', function ($scope) {
  $scope.model = false;
  $scope.data =[
       {
         "content" : "some content0",
         "createdAt" : "1459401001460",
         "completed" : false
       },
      {
         "content" : "some content1",
         "createdAt" : "1459401001325",
         "completed" : true
       },
       {
         "content" : "some content2",
         "createdAt" : "1459401001460",
         "completed" : false
       },
      {
         "content" : "some content3",
         "createdAt" : "1459401001325",
         "completed" : true
       },
       {
         "content" : "some content4",
         "createdAt" : "1459401001460",
         "completed" : false
       },
      {
         "content" : "some content5",
         "createdAt" : "1459401001325",
         "completed" : true
       }
 ];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app = "app">
  <div ng-controller="Main">
 <input type="checkbox" ng-model="model">
<div >
    <table class="table table-bordered">
        <tr ng-repeat="d in data | filter: {completed: model }">
            <td>{{d.content}}</td>
        </tr>
    </table>
</div>
   </div>
</div>