【发布时间】:2020-06-18 16:46:14
【问题描述】:
我可以使用此自定义过滤器过滤表(特定列)中的值。数据来自多选输入数组
完整示例: http://jsfiddle.net/d1sLj05t/1/
myApp.filter('filterMultiple',['$filter',function ($filter) {
return function (items, keyObj) {
var filterObj = {
data:items,
filteredData:[],
applyFilter : function(obj,key){
var fData = [];
if(this.filteredData.length == 0)
this.filteredData = this.data;
if(obj){
var fObj = {};
if(angular.isString(obj)){
fObj[key] = obj;
fData = fData.concat($filter('filter')(this.filteredData,fObj));
}else if(angular.isArray(obj)){
if(obj.length > 0){
for(var i=0;i<obj.length;i++){
if(angular.isString(obj[i])){
fObj[key] = obj[i];
fData = fData.concat($filter('filter')(this.filteredData,fObj));
}
}
}
}
if(fData.length > 0){
this.filteredData = fData;
}
}
}
};
if(keyObj){
angular.forEach(keyObj,function(obj,key){
filterObj.applyFilter(obj,key);
});
}
return filterObj.filteredData;
}
}]);
<tr ng-repeat="emp in empList | filterMultiple:{dept:selected}">
当值存在时完美,例如“sales”或“account”,但是当表中不存在该值时,返回所有数据(当我选择“not”或组合“not”和“sales”时)。我希望只有选定值的结果为空
【问题讨论】:
标签: javascript angularjs angularjs-ng-repeat angularjs-filter