我有一组数据,我在AngularJS中使用ng-repeat显示。显示的数据被过滤,然后根据用户输入进行分页,过滤器引用控制器中的功能。
现在我想要做的是,如果用户在搜索字段中输入文本并且仅根据输入的文本进行过滤,则覆盖当前的过滤条件。即如果用户输入文本,则其他过滤器不再适用,而是使用文本过滤器。我觉得我设置它的方式就是在控制器的过滤功能中创建一个if函数,然后通过文本javascript重新创建角度过滤器。但是,我不知道该怎么做,即使它是正确的方式。
以下是代码片段,希望能够很好地概述当前状态以及我想要实现的目标。
TEXT SEARCH HTML
<input
ng-model="searchData.query"
type="text"
name="productname"
id="productname"
class="form-control productname-answer">
过滤HTML
<div ng-repeat="product in (productsFilterd = (productData | filter: {productfilter:true} | orderBy:'relevance':true)).slice(((productData.currentPage-1)*productData.itemsPerPage), ((productData.currentPage)*productData.itemsPerPage))">
...
</div>
CONTROLLER
$scope.getProductfilter = function() {
for (i = 0; i < $scope.productprofiles.length; i++) {
if ($scope.productprofiles[i].reqlanguagecompara === 1 && $scope.productprofiles[i].reqservicecompara === 1) {
$scope.productprofiles[i].productfilter = true;
}
else {
$scope.productprofiles[i].productfilter = false;
};
};
};