问题
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:
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
来源:https://stackoverflow.com/questions/39279117/use-array-in-custom-filter