如何在单个angularjs自定义过滤函数上过滤具有多个下拉列表的项目数组?

时间:2019-05-04 05:55:08

标签: javascript angularjs

我在Angularjs中遇到了filter函数的问题,在这里我使用了通用函数ng-change来处理多个下拉列表。但是,当我选择“全部”(默认选项)时,将得到一个空数组的已过滤项目。

这是我的代码

Javascript:

function customFilters() {
    vm.filteredItems = $filter('filter')(vm.claimsResData, {
        status: vm.status,
        member: vm.member,
        treatment: vm.treatment
    });
}

HTML:

<select ng-model="vm.member" class="form-control"
        ng-options="names for names in vm.memberNames"
        ng-change="vm.customFilters()">
    <option value="">All Members</option>
</select>

任何帮助将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:0)

按如下所示更新您的函数,因为当您要从过滤器中排除键时,必须将loss function传递给它的值,但是在您的代码中,您传递的是空字符串,即net2(vcat(net(a),Float32.(a)))[1] < / p>

undefined

答案 1 :(得分:0)

仅当选择为真时,才将选择添加到模式对象:

function customFilters() {
    var patternObj = {}

    vm.status && patternObj.status = vm.status;
    vm.member && patternObj.member = vm.member;
    vm.treatment && patternObj.treatment = vm.treatment;

    vm.filteredItems = $filter('filter')(vm.claimsResData, patternObj);
}

模式对象用于过滤数组包含的对象的特定属性。当模式对象上存在该属性时,数组中的对象必须具有该属性。

有关更多信息,请参见