Bolboa Bolboa - 1 year ago 71
AngularJS Question

use array in custom filter

I created an array that has the following format...

$scope.myArr = [arg1, arg2];

Now I want to create a custom filter that will take the array as a parameter and compare to another array, for example I want to use it as so...

<div class="form-container" ng-repeat="formblock in forms | filter:dateFilter(myArr)">

This way every
will be compared to the array, so if
has either
then these will show, otherwise hide everything else.

Is this possible?

Answer Source

Your html with custom Angular#Filter should be

<div class="form-container" ng-repeat="formblock in forms | dateFilter:myArr">

Your forms is passed as firsr parameter implicitely and passed the additional parameter with : after filter name.

JS :

Filter :

app.filter('dateFilter', function() {

    var boolFound = false;
    return function(arrForm, arrArg) {

        arrForm.forEach(function(val, key) {
            var boolFound = false;
            arrArg.forEach(function(val1, key1) {

                if ( === val1) {
                    boolFound = true;
            if (boolFound === false) {
                arrForm.splice(key, 1);
        return arrForm;

Here is the updated Fiddle

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download