2016-08-26 3 views
0

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

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

ответ

0

В порядке вам нужно передать элемент массива, как если у вас есть 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> 
+0

он уже добавляет данные в '$ scope.allusers = data;' –

+0

Я пишу тот же код в другом проекте, и он работал там, но не здесь, –

+0

@UsmanIqbal вы можете легко написать фиктивные данные, что находится в $ scope.allusers? – Mitul

0

Я предполагаю, что вы пытаетесь сделать заказ на 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 

Надеется, что это помогает

+0

применил ваш ответ, когда я выбираю Нет, я все еще вижу« Нет »в результатах, и если я выберу« да », никаких изменений. –