0

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?

1
  • check the updated answer Commented Sep 1, 2016 at 19:37

1 Answer 1

2

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

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.