如何在ui-grid中过滤多个值? (angularjs)

时间:2015-05-06 19:29:33

标签: javascript angularjs angularjs-filter angular-ui-grid

我试图通过为过滤器传递多个值来制作过滤器,但只返回一次。

$(document).ready(function(){

    $('#account_name').val("Some value");
    $('#phone_number').val("Some value");
    $('#YOUR_CUSTOM_FIELD_ID_c').val("Some value");
    $('#YOUR_CUSTOM_FIELD_ID_c').val("Some value");

});

在此处找到测试代码http://localhost/myproject/index.php/admin/index/index/key/e8d39e2cf8686363a43e0524be944100/

2 个答案:

答案 0 :(得分:3)

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

 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;
}

查看链接中的代码: http://plnkr.co/edit/UVDWfucjclXl4Ij9Ylm7?p=preview

答案 1 :(得分:0)

如果某人需要AND而不是OR

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;   
                }