我在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>
任何帮助将不胜感激。
谢谢。
答案 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);
}
模式对象用于过滤数组包含的对象的特定属性。当模式对象上存在该属性时,数组中的对象必须具有该属性。
有关更多信息,请参见