Javascript 如何在ui网格中使用多个值进行筛选?(angularjs)

Javascript 如何在ui网格中使用多个值进行筛选?(angularjs),javascript,angularjs,angularjs-filter,angular-ui-grid,Javascript,Angularjs,Angularjs Filter,Angular Ui Grid,我试图创建一个过滤器,为过滤器传递多个值,但只有一个返回 field: 'name', filter: { condition: function(searchTerm, cellValue) { var strippedValue = (searchTerm).split(';'); //console.log(strippedValue); for (i = 0; i < strippedValue.length;

我试图创建一个过滤器,为过滤器传递多个值,但只有一个返回

field: 'name',
    filter: {
       condition: function(searchTerm, cellValue) {
        var strippedValue = (searchTerm).split(';');
        //console.log(strippedValue);
        for (i = 0; i < strippedValue.length; i++){
          if (cellValue.indexOf(strippedValue[i]) == -1)
            return false;    
          return true;
        }
        //return cellValue.indexOf(strippedValue) >= 0;
      }
    }, headerCellClass: $scope.highlightFilteredHeader
字段:“名称”,
过滤器:{
条件:函数(searchTerm、cellValue){
var strippedValue=(searchTerm).split(“;”);
//console.log(strippedValue);
对于(i=0;i=0;
}
},headerCellClass:$scope.highlightFilteredHeader

在这里找到测试代码

解决了,我也做了一些调整来改进代码

 condition: function(searchTerm, cellValue) {
    var separators = ['-', '/', ':', ';', ','];
    var strippedValue = searchTerm.split(new RegExp(separators.join('|'), 'g'));
    var bReturnValue = false;
    //console.log(strippedValue, "teste");
    for(iIndex in strippedValue){
        var sValueToTest = strippedValue[iIndex];
        sValueToTest = sValueToTest.replace(" ", "");
        if (cellValue.toLowerCase().indexOf(sValueToTest.toLowerCase()) >= 0)
            bReturnValue = true;
    }
    return bReturnValue;
}
查看链接中的代码:

解决了,我做了一些调整以改进代码

 condition: function(searchTerm, cellValue) {
    var separators = ['-', '/', ':', ';', ','];
    var strippedValue = searchTerm.split(new RegExp(separators.join('|'), 'g'));
    var bReturnValue = false;
    //console.log(strippedValue, "teste");
    for(iIndex in strippedValue){
        var sValueToTest = strippedValue[iIndex];
        sValueToTest = sValueToTest.replace(" ", "");
        if (cellValue.toLowerCase().indexOf(sValueToTest.toLowerCase()) >= 0)
            bReturnValue = true;
    }
    return bReturnValue;
}
查看链接中的代码:

如果有人需要一个

filter: {
         condition:function(searchTerm, cellValue){          
                    if(cellValue===null){
                        return false;
                    }
                    let separators = [' ', '/', ':', ';', ','];
                    let strippedValue = searchTerm.split(new RegExp(separators.join('|'), 'g'));
                    let bReturnValue = false; 
                    let intNumFound = 0;
                    for(let iIndex in strippedValue){
                            let sValueToTest = strippedValue[iIndex];
                            sValueToTest = sValueToTest.replace(" ", "");
                            if (cellValue.toLowerCase().indexOf(sValueToTest.toLowerCase()) >= 0){
                            intNumFound++;
                            }
                            //bReturnValue = true;
                    } 
                    if(intNumFound>=strippedValue.length){
                        bReturnValue = true;
                    }
                    return bReturnValue;   
                }   

如果有人需要一个

filter: {
         condition:function(searchTerm, cellValue){          
                    if(cellValue===null){
                        return false;
                    }
                    let separators = [' ', '/', ':', ';', ','];
                    let strippedValue = searchTerm.split(new RegExp(separators.join('|'), 'g'));
                    let bReturnValue = false; 
                    let intNumFound = 0;
                    for(let iIndex in strippedValue){
                            let sValueToTest = strippedValue[iIndex];
                            sValueToTest = sValueToTest.replace(" ", "");
                            if (cellValue.toLowerCase().indexOf(sValueToTest.toLowerCase()) >= 0){
                            intNumFound++;
                            }
                            //bReturnValue = true;
                    } 
                    if(intNumFound>=strippedValue.length){
                        bReturnValue = true;
                    }
                    return bReturnValue;   
                }   

你想完成什么?在什么情况下,过滤器需要多个值?您打算如何为名称输入多个值?我正在从事一个合同管理项目,该项目是为了在搜索字段中创建多个过滤器而创建的,例如:filter by“acrediaria;DNIT”必须返回包含客户端“acrediaria”或“DNIT”的值。这可以通过使用您链接的代码中已经支持的正则表达式来解决。您试图实现什么?在什么情况下,过滤器需要多个值?您打算如何为名称输入多个值?我正在从事一个合同管理项目,该项目是为了在搜索字段中创建多个过滤器而创建的,例如:filter by“acrediaria;DNIT”必须返回包含客户端“acrediaria”或“DNIT”的值。这可以通过使用您链接的代码中已支持的正则表达式来解决