javascriptangularjsangularjs-filterangular-ui-grid

How to filter with multiple values in ui-grid? (angularjs)


I'm trying to make a filter with passing multiple values for the filter but have only a single return.

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

find the test code here http://plnkr.co/edit/UVDWfucjclXl4Ij9Ylm7?p=preview


Solution

  • Resolved, I made some adjustments to improve the code as well.

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

    Look code in link: http://plnkr.co/edit/UVDWfucjclXl4Ij9Ylm7?p=preview