在AngularJS中,可以使用自定义过滤器来执行OR操作。以下是一个示例代码:
HTML:
- {{item}}
JavaScript:
angular.module('myApp', [])
.controller('myController', function($scope) {
$scope.items = ['apple', 'banana', 'cherry', 'orange', 'pear'];
})
.filter('myFilter', function() {
return function(items, searchText) {
if (!searchText) {
return items;
}
var filteredItems = [];
var searchTextArray = searchText.split(' ');
for (var i = 0; i < items.length; i++) {
var item = items[i];
var match = false;
for (var j = 0; j < searchTextArray.length; j++) {
var searchTerm = searchTextArray[j];
if (item.indexOf(searchTerm) !== -1) {
match = true;
break;
}
}
if (match) {
filteredItems.push(item);
}
}
return filteredItems;
};
});
在上面的示例中,我们首先在控制器中定义了一个包含项目的数组。然后,我们在HTML中使用ng-repeat指令来循环显示这些项目。我们使用自定义过滤器myFilter
来过滤项目。
在自定义过滤器中,我们首先检查是否提供了搜索文本。如果没有提供搜索文本,则返回所有项目。否则,我们将搜索文本拆分为一个搜索词数组,并遍历项目数组。对于每个项目,我们遍历搜索词数组,并检查项目是否包含任何搜索词。如果项目包含任何搜索词,则将其添加到已过滤项数组中。
最后,我们返回已过滤项数组,它将被ng-repeat指令使用来显示匹配的项目。