2016-05-13 5 views
0

Я использую AngularJS с модулем smart-table, и я показываю таблицу с ним.checkbox filtering on table with objects

Информация в строках улавливается запросом «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 флажков.

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

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

Update:

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

+0

что вы имеете в виду «фильтровать эти строки с несколькими флажками»? это действительно двусмысленно. можете ли вы лучше описать функциональность? – svarog

+0

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

ответ

0

Вы можете использовать нг-повторить фильтр, чтобы сделать это.

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

<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> 
+0

Спасибо за ответ, не могли бы вы рассказать мне, что такое filter.type? Я имею в виду, когда я его использую, он скрывает все строки в таблице. –

+0

Что я хочу сделать, это что-то вроде этого: https://github.com/lorenzofox3/Smart-Table/issues/387 –

+0

ОК, я понимаю. на самом деле в моем примере фильтр объекта - это настраиваемый объект без столбца по умолчанию. вы можете добавить каждый столбец своего объекта для фильтрации на нем. в моем примере, если у вас есть тип столбца в вашем объекте, вы сможете фильтровать тип banana, следуя моему примеру. если у вас есть другой столбец пол или категория, это будет что-то около $ scope.filter.gender –