gpt4 book ai didi

javascript - Angular JS通过逻辑AND过滤,使用多个术语

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:28 26 4
gpt4 key购买 nike

我的 html 中有一个文本框,我想通过我在框中键入的术语的逻辑与来过滤页面上的结果。让我演示一下

假设我的页面上有

- Example number 1
- Example number 2
- Example number 3

通常,如果我想过滤结果,我会做类似的事情

<input type= "text" ng-model= "query">

后来

<tr ng-repeat= "thing in blah | filter : query">
<td> {{thing}} </td>
</tr>

如果我输入

"Example"

可以理解,我不会“过滤”任何东西。但是,我将如何使用多个搜索词进行逻辑 AND?例如,如果我输入

"Example 1"

我应该只取回第一个示例,因为它同时包含“Example”和“1”。我在 Angular 文档中没有看到任何允许我这样做的内容,但我确信可以通过创建我自己的过滤器来完成,我只是没有做这样的事情的经验。

最佳答案

创建自定义过滤器:

filter('and', function($log) {
return function(items, query) {
if (!query) return items; // return all items if nothing in query box

var terms = query.split(' '); //split query terms by space character
var arrayToReturn = [];

items.forEach(function(item){ // iterate through array of items
var passTest = true;
terms.forEach(function(term){ // iterate through terms found in query box
// if any terms aren't found, passTest is set to and remains false
passTest = passTest && (item.toLowerCase().indexOf(term.toLowerCase()) > -1);
});
// Add item to return array only if passTest is true -- all search terms were found in item
if (passTest) { arrayToReturn.push(item); }
});

return arrayToReturn;
}
})

并用它代替filter: query:

<tr ng-repeat="thing in blah | and:query">

Plunker Demo

关于javascript - Angular JS通过逻辑AND过滤,使用多个术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23504757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com