Javascript 在某些字段中使用“AngularJS过滤器”;或;条件
我对AngularJS过滤器有问题 我不想用一个输入搜索框“过滤”,而是用多个带“或”条件的字段过滤列表 这里是一个演示 我不想只使用Javascript 在某些字段中使用“AngularJS过滤器”;或;条件,javascript,angularjs,filter,Javascript,Angularjs,Filter,我对AngularJS过滤器有问题 我不想用一个输入搜索框“过滤”,而是用多个带“或”条件的字段过滤列表 这里是一个演示 我不想只使用name和description字段筛选列表 如果我输入“hello”、“world”或“angular”,则不应返回任何结果 如果我输入:“example”,它应该只返回第一行和第三行 如果我输入:“description”,它应该只返回第一行和第二行。等等 所以,一般来说,我想使用一个名称、多个名称,但列表中的某些字段使用“或”条件进行筛选 我能够创造“和”
name
和description
字段筛选列表
如果我输入“hello”、“world”或“angular”,则不应返回任何结果
如果我输入:“example”,它应该只返回第一行和第三行
如果我输入:“description”,它应该只返回第一行和第二行。等等
所以,一般来说,我想使用一个名称、多个名称,但列表中的某些字段使用“或”条件进行筛选
我能够创造“和”条件,但这不是我需要的
我也搜索了很多关于这个主题的内容,但不幸的是,这些代码和示例中没有一个适合我
请,帮助和感谢提前 我认为OR过滤器还不受支持。我通过创建一个名为
$searchable
的元属性解决了这个问题
angular.forEach($scope.items, function (item){
Item.$searchable = [item.name, item.description].join (' ');
}
在html中:
<input type="text" ng-model="search.$searchable">
您可以创建自己的,并应用您想要的任何功能
在您的情况下,类似于:
app.filter('customFilter', function() {
return function(items, search) {
if (!search) {
return items;
}
var searchItems = new RegExp(search.split(' ').join("|"), "i");
return items.filter(function(item) {
return searchItems.test(item.name) || searchItems.test(item.description);
});
};
});
查看它的工作情况。我想创建一个自定义筛选器,但无法管理它。谢谢,这正是我需要的。