如何使用 ng-model 通过 OR 操作过滤多个值?
How do you filter multiple values with the OR operation using an ng-model?
我目前有一个标记为 "myQuery." 的 ng-modal 现在,它有两个这样显示的过滤器:
<accordion-group heading="" ng-repeat="hungry_pets in Pets" | filter:{hungry:false} | filter:{name:myQuery}" ... >
我一直在网上寻找一种执行过滤器的方法,这样无论我在查询中输入什么,它都会 returns 一个在任何字段中匹配(包含字母序列)的宠物列表。因此,我当前的对象具有以下字段:'name'、'owner'、'color'、'weight' 和 'hungry'。理想情况下,我会尝试像我在这个 question 中发现的东西,它看起来像:
<accordion-group heading="" ng-repeat="hungry_pets in Pets" | filter:{hungry:false} | filter:({name:myQuery}||{owner:myQuery}||{color:myQuery}||{weight:myQuery})" ... >
或:
<accordion-group heading="" ng-repeat="hungry_pets in Pets" | filter:{hungry:false} | filter:filterALL)" ... >
有没有办法通过重新格式化上面的 HTML 标签来实现这一点?如果我要编写一个函数 'filterALL' 以便我可以用 'filter:filterALL' 替换它,那会是什么样子?
好吧,我知道这并不能完全回答问题,但是如果考虑搜索任何参数,而不是一组特定参数,您可以使用“$”而不是特定字段。
<accordion-group heading="" ng-repeat="hungry_pets in Pets" | filter:{hungry:false} | filter:{$:myQuery}" ... >
您可以像下面这样编写自定义过滤器:
JS:
app.filter('customFilter', function() {
return function(arr, searchString){
....
};
});
HTML:
<accordion-group heading="" ng-repeat="hungry_pets in Pets" | customFilter)" ... >
我目前有一个标记为 "myQuery." 的 ng-modal 现在,它有两个这样显示的过滤器:
<accordion-group heading="" ng-repeat="hungry_pets in Pets" | filter:{hungry:false} | filter:{name:myQuery}" ... >
我一直在网上寻找一种执行过滤器的方法,这样无论我在查询中输入什么,它都会 returns 一个在任何字段中匹配(包含字母序列)的宠物列表。因此,我当前的对象具有以下字段:'name'、'owner'、'color'、'weight' 和 'hungry'。理想情况下,我会尝试像我在这个 question 中发现的东西,它看起来像:
<accordion-group heading="" ng-repeat="hungry_pets in Pets" | filter:{hungry:false} | filter:({name:myQuery}||{owner:myQuery}||{color:myQuery}||{weight:myQuery})" ... >
或:
<accordion-group heading="" ng-repeat="hungry_pets in Pets" | filter:{hungry:false} | filter:filterALL)" ... >
有没有办法通过重新格式化上面的 HTML 标签来实现这一点?如果我要编写一个函数 'filterALL' 以便我可以用 'filter:filterALL' 替换它,那会是什么样子?
好吧,我知道这并不能完全回答问题,但是如果考虑搜索任何参数,而不是一组特定参数,您可以使用“$”而不是特定字段。
<accordion-group heading="" ng-repeat="hungry_pets in Pets" | filter:{hungry:false} | filter:{$:myQuery}" ... >
您可以像下面这样编写自定义过滤器:
JS:
app.filter('customFilter', function() {
return function(arr, searchString){
....
};
});
HTML:
<accordion-group heading="" ng-repeat="hungry_pets in Pets" | customFilter)" ... >