ngGrid Как я могу создать фильтры для нескольких столбцов, таких как Excel Data Filter?
Мы используем ngGrid. Я хотел знать, есть ли способ создать фильтр нескольких столбцов, как в Excel?
Я искал в сети, но больше всего я мог найти фильтр с одним текстовым полем для фильтрации всех столбцов (хотя только по одному за раз).
Любая помощь будет оценена.
Спасибо!
1 ответ
Решение
Может быть, попробуйте плагин filterBar.
var filterBarPlugin = {
init: function(scope, grid) {
filterBarPlugin.scope = scope;
filterBarPlugin.grid = grid;
$scope.$watch(function() {
var searchQuery = "";
angular.forEach(filterBarPlugin.scope.columns, function(col) {
if (col.visible && col.filterText) {
var filterText = col.filterText +'; ';
searchQuery += col.displayName + ": " + filterText;
}
});
return searchQuery;
}, function(searchQuery) {
filterBarPlugin.scope.$parent.filterText = searchQuery;
filterBarPlugin.grid.searchProvider.evalFilter();
});
},
scope: undefined,
grid: undefined,
};
Вот Plunker, чтобы показать это в действии.
Этот плагин не был написан мной, и я не помню, где я его нашел. Я просто использовал это в этом вопросе. (см. комментарий)