或过滤器中的条件

时间:2014-05-02 19:44:31

标签: angularjs

是否可以在过滤器中编写简单或条件,如下所示?:

formResponse in formResponses | filter: { formName: form } || filter:{ formCategory: formCategory }"

我知道语法错误但逻辑上类似。因此,如果设置了formCategory,它将按照而不是formName进行过滤,如果设置了formName,它将按此过滤而不是formCategory。现在它作为一个条件工作,因此它将按formName和formCategory进行过滤。

2 个答案:

答案 0 :(得分:1)

用法:

formResponse in formResponses | customFilter: filter

实现:

angular.module('customFilter', [])
.filter('customFilter', [function () {
    'use strict';

return function (items, filter) {
    var filtered = [];
        angular.forEach(items, function(value, key) {
            if (filter.formName}
                   .....
            if (filter.formCategory)
                   ....
            if (passes filter criteria)
                  filtered.push(value);

        });
    }

    return filtered;
};
}]);

答案 1 :(得分:0)

我使用了以下内容:

<span ng-click="category='clinical'; name=''">Clinical Docs</span>
<span ng-click="name='intake'; category=''">Intake</span>

<div ng-repeat='formResponse in formResponses | filter: { formName: name } | filter: { formCategory: category }