ngGrid如何在多个列上创建过滤器,如Excel Data Filter?

时间:2014-09-15 19:43:02

标签: angularjs filtering ng-grid multiple-columns

我们正在使用ngGrid。我想知道是否有办法在Excel中创建多列过滤器?

一直在网上搜索,但我发现的大部分内容都是使用单个文本框过滤器来过滤所有列(虽然一次只能过滤一次)。

任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:4)

也许尝试使用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来展示它的实际效果。

这个插件不是我写的,我不记得我在哪里找到它。我刚刚在Question中使用过它。 (见评论)