Почему не работает фильтр заказа?
Я применяю фильтр '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>