使用可选属性过滤多个属性?

时间:2015-12-26 21:47:20

标签: angularjs angularjs-filter

我想用两个json属性过滤一系列产品,isExtinguisher&amp; brandisExtinguisher属性很简单,只有一个复选框和<select>的过滤器,如下所示:

ng-options="product as product.name for product in vm.filtered_products | filter : { isExtinguisher : vm.isExtinguisher } : true"

我遇到的问题是brand过滤,我为品牌设置了另一个<select>,它被绑定到vm.current_brand我想要的是{{1} }}有价值,然后产品vm.current_brand将被过滤,否则它将显示所有品牌的所有产品。

执行以下操作仅在选择品牌时显示产品:

<select>

但是当没有选择品牌时,则不会显示任何产品,我想要的是如果没有选择品牌,则会显示所有产品。

1 个答案:

答案 0 :(得分:0)

使用

filter : vm.getFilter() : true

并在控制器中以这种方式定义getFilter():

vm.getFilter = function() {
    var result = {
        isExtinguisher : vm.isExtinguisher
    };
    if (vm.current_brand) {
        result.brand = vm.current_brand;
    }
    return result;
};