Я пытаюсь отфильтровать список пользователей. Я использую пользовательскую версию Bootstrap
и хочу отобразить таблицу из 4 столбцов.AngularJS + Bootstrap + Filter
До сих пор, у меня есть следующий код:
<div ng-repeat="user in users | filter:searchValue | orderBy: 'username'">
<span ng-switch on="$index % 4">
<span ng-switch-when="0">
<div class="row-fluid">
<div class="span3" ng-if="users[$index+0]">
<user-item ng-model="users[$index+0]" on-click="showUser(userId)"></user-item>
</div>
<div class="span3" ng-if="users[$index+1]">
<user-item ng-model="users[$index+1]" on-click="showUser(userId)"></user-item>
</div>
<div class="span3" ng-if="users[$index+2]">
<user-item ng-model="users[$index+2]" on-click="showUser(userId)"></user-item>
</div>
<div class="span3" ng-if="users[$index+3]">
<user-item ng-model="users[$index+3]" on-click="showUser(userId)"></user-item>
</div>
</div>
</span>
</span>
</div>
До сих пор он прекрасно работает, когда нет набора фильтров. Когда я установил searchValue
, $index
не может отобразить правильное значение (он всегда будет начинаться с 0 до длины фильтрованного массива).
Мой вопрос: есть ли способ правильно отобразить результаты в таблице 4-cols
и отфильтровать результат?
Ну, я хотел бы получить '$ index' из цельных' пользователей Array'. Я имею в виду, что если 'filter' установлен в' null', '$ index' будет идти от 0 до 100 (как пример). Когда я устанавливаю фильтр на '98' (Говоря, что имя пользователя - это что-то вроде' Username + $ index'), я ожидаю получить '$ index = 97', но я получил' 0'. – Manitoba
Проверьте этот плункер: http://plnkr.co/edit/z5ts5AJQhLIuGZxx73Z5?p=preview Ожидание поиска '' '' 'name4' и' name40'. Результаты: 'name5',' name7', 'name8' и' name9' – Manitoba
@Manitoba, пытаетесь ли вы сохранить структуру из 4 столбцов таблицы, показывая только те результаты, которые соответствуют запросу? И держать пустые ячейки в других? –