我创建了一个具有以下格式的数组......
$scope.myArr = [arg1, arg2];
现在我想创建一个自定义过滤器,将数组作为参数并与另一个数组进行比较,例如我想将其用作...
<div class="form-container" ng-repeat="formblock in forms | filter:dateFilter(myArr)">
这样每个formblock
都会与数组进行比较,因此如果formblock.date
有arg1
或arg2
,则会显示这些内容,否则会隐藏其他内容。
这可能吗?
答案 0 :(得分:2)
您的自定义Angular#Filter的HTML应为
<div class="form-container" ng-repeat="formblock in forms | dateFilter:myArr">
您的forms
被隐含地作为第一个参数传递,并在过滤器名称之后使用:
传递了附加参数。
JS:
过滤:
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;
}
})
以下是更新后的Fiddle