buydadip
buydadip

Reputation: 9407

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 formblock will be compared to the array, so if formblock.date has either arg1 or arg2 then these will show, otherwise hide everything else.

Is this possible?

Upvotes: 0

Views: 163

Answers (1)

RIYAJ KHAN
RIYAJ KHAN

Reputation: 15292

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 (val.date === val1) {
                    boolFound = true;
                }
            });
            if (boolFound === false) {
                arrForm.splice(key, 1);
            }
        });
        return arrForm;
    }
})

Here is the updated Fiddle

Upvotes: 2

Related Questions