带OR运算符的角度滤波器

时间:2017-07-25 17:35:25

标签: javascript angularjs filter operator-keyword

我正在尝试从范围滑块构建过滤器。

是否可以设置我的范围滑块何时位于其中一个位置以显示多个类别?

使用下面的代码,我可以使用范围进行过滤,但是他只在第一个单词上添加了过滤器,而在OR运算符之后只有它。有人可以帮帮我吗?

$scope.filterRange = filterRange;

function filterRange() {
    if (this.rangemodel == 1) {
        $scope.categoryfilter = 'web' || 'ecommerce '; // something like that!
    } else if(this.rangemodel == 2) {
        $scope.categoryfilter = 'branding' || 'video'; // something like that!
    } ;
};

<div ng-repeat="project in projects | filter: {category: categoryfilter}">

我已经在这里看到了另一篇文章,但仍然没有得到我如何实现这一点。 =(

感谢Daniel,这是工作解决方案:

$scope.projetos = [];

$scope.filtroRange = filtroRange; 

function filtroRange() {
    if (this.rangemodel == 1) {
        $scope.categoryFilter = function(projeto) {
        if (projeto.categoria === 'site institucional' || projeto.categoria === 'ecommerce') {
            console.log('filtrando');
            return projeto;      
            }
        };
    } else if (this.rangemodel == 2) {
        $scope.categoryFilter = function(projeto) {
        if (projeto.categoria === 'branding' || projeto.categoria === 'email marketing') {
            console.log('filtrando');
            return projeto;      
            }
        };
    }
 };

1 个答案:

答案 0 :(得分:1)

您可以创建自定义过滤器功能,如下所示:

$scope.categoryFilter = function(project) {
    if (this.rangemodel == 1) {
        if (project.category === 'web' || project.category === 'ecommerce') {
            return project;      
        }
    } else if (this.rangemodel == 2) {
        if (project.category === 'branding' || project.category === 'video') {
                return project;
            }
        }
    }
};

然后你的html会简单地将这个函数称为过滤器:

<div ng-repeat="project in projects | filter: categoryFilter">