фильтрация по чекбоксу на таблице с объектами

Я использую AngularJS с модулем smart-table и показываю с ним таблицу.

Информация в строках перехватывается запросом «POST» с MySQL.

Эта информация хранится в $scope.data_server, объявленном в контроллере приложения:

app.controller('SearchbddCtrl', function ($scope, $http) {
   get_data();
function get_data() {
    var name = $scope.name;
    $http.post('/searchbdd', {name: name}).success(function (data, status, headers, config) {
        $scope.data_server = data;
    }).error(function (data, status) {
        alert("Connection Error");
     });
    }
});

В интерфейсе я отображаю их так:

<tr ng-repeat="data in displayCollection" st-select-row="data" st-select-mode="single">
<td>{{ data.login}}</td>
<td>{{ data.name}}</td>
</tr>

Что я хочу сделать: отфильтровать эти строки с помощью нескольких флажков. Мне нужно 10 флажков.

Я действительно не знаю, как это сделать. У кого-нибудь есть информация или пример кода?

Пример . Например, у меня есть фрукты (бананы, яблоки и апельсины), отображаемые в таблице. Я хочу отображать в таблице только бананы вместо бананов, яблок и апельсинов. Или если я хочу отображать только яблоки и апельсины. Я отмечаю «апельсины» и «яблоки», и он отображает строки, содержащие эти типы фруктов.

Обновлять :

Вот что я хочу сделать: https://github.com/lorenzofox3/Smart-Table/issues/387


person R.co    schedule 13.05.2016    source источник
comment
что вы имеете в виду под фильтром этих строк с несколькими флажками? это действительно неоднозначно. можно лучше описать функционал?   -  person svarog    schedule 13.05.2016
comment
Например, у меня есть фрукты. Я хочу отображать в таблице только бананы вместо бананов, яблок и апельсинов. Или если я хочу отображать только яблоки и апельсины. Я проверяю апельсины и яблоки, и он отображает строки, содержащие эти типы фруктов.   -  person R.co    schedule 15.05.2016


Ответы (1)


Для этого вы можете использовать фильтр ng-repeat.

Для образца, если у вас есть тип столбца в каждой строке вашей коллекции, вы можете сделать что-то вроде следующего:

<input type="checkbox" ng-model="$scope.filter.type" value="banana"/>

<tr ng-repeat="data in displayCollection | filter:$scope.filter" st-select-row="data" st-select-mode="single">
<td>{{ data.login}}</td>
<td>{{ data.name}}</td>
</tr>
person jeremy-denis    schedule 15.05.2016
comment
Спасибо за ответ, не могли бы вы сказать мне, что такое filter.type? Я имею в виду, когда я его использую, он скрывает все строки в таблице. - person R.co; 16.05.2016
comment
Что я хочу сделать, это что-то вроде этого: github.com/lorenzofox3/Smart-Table /вопросы/387 - person R.co; 16.05.2016
comment
хорошо я понял. на самом деле в моем образце фильтр объектов по умолчанию является настраиваемым объектом без столбца. вы можете добавить каждый столбец вашего объекта для фильтрации по нему. в моем образце, если у вас есть тип столбца в вашем объекте, вы сможете фильтровать тип банана, следуя моему образцу. если у вас есть другой пол столбца или категория, это будет что-то около $scope.filter.gender - person jeremy-denis; 16.05.2016
comment
Хорошо, в моем случае я пытаюсь отобразить строки путем фильтрации со статусом, который не отображается в столбце таблицы, но я получаю этот статус в $scope.data_server - person R.co; 16.05.2016