Ng grid 使用子字符串搜索的ng网格列级过滤

Ng grid 使用子字符串搜索的ng网格列级过滤,ng-grid,Ng Grid,我已经看过这辆车了 http://plnkr.co/edit/WJzTr8AR8dhWIjXELNY1?p=preview 它过滤第一个字符。有人试图基于子字符串搜索执行此筛选。如果是,请告诉我 我正在修改过滤器文本,如图所示 angular.forEach(filterBarPlugin.scope.columns, function(col) { if (col.visible && col.filterText) {

我已经看过这辆车了

http://plnkr.co/edit/WJzTr8AR8dhWIjXELNY1?p=preview
它过滤第一个字符。有人试图基于子字符串搜索执行此筛选。如果是,请告诉我

我正在修改过滤器文本,如图所示

angular.forEach(filterBarPlugin.scope.columns, function(col) {
                if (col.visible && col.filterText) {
                    var filterText = (col.filterText.indexOf('*') == 0 ? col.filterText.replace('*', '') : col.filterText + "^") + ";";
                    searchQuery += col.displayName + ": " + filterText;
                }
            });

最初的plunkr是从开始的字符进行设计过滤。如果从子字符串开始筛选,可以尝试
*
开始筛选文本框

如果您不喜欢,可以修改
filterblugin
函数:

var filterText = (col.filterText.indexOf('*') == 0 ? col.filterText.replace('*', '') : "^" + col.filterText) + ";";
searchQuery += col.displayName + ": " + filterText;


更新:修复了不允许多列排序的问题,感谢@maingguy

原始的plunkr从开始字符开始进行设计过滤。如果从子字符串开始筛选,可以尝试
*
开始筛选文本框

如果您不喜欢,可以修改
filterblugin
函数:

var filterText = (col.filterText.indexOf('*') == 0 ? col.filterText.replace('*', '') : "^" + col.filterText) + ";";
searchQuery += col.displayName + ": " + filterText;


更新:修复了不允许多列排序的问题,感谢@maingguy

原始的plunkr从开始字符开始进行设计过滤。如果从子字符串开始筛选,可以尝试
*
开始筛选文本框

如果您不喜欢,可以修改
filterblugin
函数:

var filterText = (col.filterText.indexOf('*') == 0 ? col.filterText.replace('*', '') : "^" + col.filterText) + ";";
searchQuery += col.displayName + ": " + filterText;


更新:修复了不允许多列排序的问题,感谢@maingguy

原始的plunkr从开始字符开始进行设计过滤。如果从子字符串开始筛选,可以尝试
*
开始筛选文本框

如果您不喜欢,可以修改
filterblugin
函数:

var filterText = (col.filterText.indexOf('*') == 0 ? col.filterText.replace('*', '') : "^" + col.filterText) + ";";
searchQuery += col.displayName + ": " + filterText;


更新:修复了不允许多列排序的问题,谢谢@maingue

这不是一个真正的答案,而是对@allyusd答案的更新

他基本上是对的,但他的无通配符解决方案不允许多列排序,因为缺少分号

通过这些小改动:

angular.forEach(filterBarPlugin.scope.columns, function(col) {
            if (col.visible && col.filterText) {
                var filterText = col.filterText +'; ';
                searchQuery += col.displayName + ": " + filterText;
            }
        });
您可以在此中筛选
name=or
年龄=4
,结果将得到Enors


正如我所说:只是一个更新,感谢allyusd

这不是真正的答案,而是对@allyusd答案的更新

他基本上是对的,但他的无通配符解决方案不允许多列排序,因为缺少分号

通过这些小改动:

angular.forEach(filterBarPlugin.scope.columns, function(col) {
            if (col.visible && col.filterText) {
                var filterText = col.filterText +'; ';
                searchQuery += col.displayName + ": " + filterText;
            }
        });
您可以在此中筛选
name=or
年龄=4
,结果将得到Enors


正如我所说:只是一个更新,感谢allyusd

这不是真正的答案,而是对@allyusd答案的更新

他基本上是对的,但他的无通配符解决方案不允许多列排序,因为缺少分号

通过这些小改动:

angular.forEach(filterBarPlugin.scope.columns, function(col) {
            if (col.visible && col.filterText) {
                var filterText = col.filterText +'; ';
                searchQuery += col.displayName + ": " + filterText;
            }
        });
您可以在此中筛选
name=or
年龄=4
,结果将得到Enors


正如我所说:只是一个更新,感谢allyusd

这不是真正的答案,而是对@allyusd答案的更新

他基本上是对的,但他的无通配符解决方案不允许多列排序,因为缺少分号

通过这些小改动:

angular.forEach(filterBarPlugin.scope.columns, function(col) {
            if (col.visible && col.filterText) {
                var filterText = col.filterText +'; ';
                searchQuery += col.displayName + ": " + filterText;
            }
        });
您可以在此中筛选
name=or
年龄=4
,结果将得到Enors

正如我所说:只是一个更新,感谢allyusd