Почему не работает фильтр заказа?

Я применяю фильтр 'orderby', но он не работает. Я получаю данные от API, который я дважды проверяю, и это точно. Но фильтр не работает.

 <div class="filter-container">
      <select class="form-control" ng-model="userOrder">
         <option value="0">No</option>
         <option value="1">Yes</option>
      </select>
 </div>

 <tr class="odd" ng-repeat="user in allusers | filter: query1 | filter: query2 | filter: query3 | filter: query4 | filter: query5 | orderBy: userOrder">       
     <td>
         <span ng-if="user.superuser==1">Yes</span>
         <span ng-if="user.superuser==0">No</span>
     </td>      
     <td>
         <span ng-if="user.status==0">Not active</span>
         <span ng-if="user.status==1">Active</span>
         <span ng-if="user.status==-1">Banned</span>
     </td>            
 </tr>

Мой контроллер:

$scope.user = function () {
    $http.get('http://event/users/users/')
        .success(function (data) {
            $scope.allusers = data;
            console.log("all users data coming in user function");                   
        })
        .error(function (data) {
            console.log('error');
        });
};

2 ответа

Я полагаю, вы пытаетесь заказать по superuser собственностью user объект.

Вы должны сделать это:

orderBy : "superuser"

Если вы хотите, чтобы ваш блок выбора был контроллером, заказывать ли в порядке убывания или в порядке возрастания, сделайте следующее:

<select class="form-control" ng-model="sortReversed">
       <option value="False">No</option>
       <option value="True">Yes</option>
</select>

...

orderBy : "superuser" : sortReversed

Надеюсь, поможет

Для того, чтобы вам нужно передать элемент массива, как будто у вас есть allusers как ниже. затем userOrder должно быть name ИЛИ ЖЕ lastname

https://docs.angularjs.org/api/ng/filter/orderBy помочь вам больше.

измените свой выпадающий список ниже и попробуйте.

<select class="form-control" ng-model="userOrder">
     <option value="username">Username</option>
     <option value="email">Email</option>     
</select>
Другие вопросы по тегам