How to filter multiple values (OR operation) in angularJS

前端 未结 20 1126
清酒与你
清酒与你 2020-11-22 10:01

I want to use the filter in angular and want to filter for multiple values, if it has either one of the values then it should be displayed.

I have for

20条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-22 10:33

    OPTION 1: Using Angular providered filter comparator parameter

    // declaring a comparator method
    $scope.filterBy = function(actual, expected) {
        return _.contains(expected, actual); // uses underscore library contains method
    };
    
    var employees = [{name: 'a'}, {name: 'b'}, {name: 'c'}, {name: 'd'}];
    
    // filter employees with name matching with either 'a' or 'c'
    var filteredEmployees = $filter('filter')(employees, {name: ['a','c']}, $scope.filterBy);
    

    OPTION 2: Using Angular providered filter negation

    var employees = [{name: 'a'}, {name: 'b'}, {name: 'c'}, {name: 'd'}];
    
    // filter employees with name matching with either 'a' or 'c'
    var filteredEmployees = $filter('filter')($filter('filter')(employees, {name: '!d'}), {name: '!b'});
    

提交回复
热议问题