Javascript 基于下拉列表的搜索条件-AngularJS过滤器
我有一个关于搜索示例名称的Javascript 基于下拉列表的搜索条件-AngularJS过滤器,javascript,angularjs,Javascript,Angularjs,我有一个关于搜索示例名称的过滤器的问题。这很容易在ng repeat上实现 我遇到的问题实际上是,我想根据名称或帐户名(两个不同的实体)进行过滤 我尝试的是让我的输入框在name和account\u name上都进行过滤,但没有成功。我所做的是: <input type="text" placeholder="Search" ng-model="searchName.name"> <md-card flex="45" flex-sm="100" flex-md="100" f
过滤器的问题。这很容易在ng repeat上实现
我遇到的问题实际上是,我想根据名称
或帐户名
(两个不同的实体)进行过滤
我尝试的是让我的输入框在name
和account\u name
上都进行过滤,但没有成功。我所做的是:
<input type="text" placeholder="Search" ng-model="searchName.name">
<md-card flex="45" flex-sm="100" flex-md="100" flex-xs="100" ng-show="(account|filter:searchName).length > 0"
ng-repeat="account in containers | groupBy: 'accountId' track by $index | filterBy: ['name', 'account_name']: searchName.name| filterBy: ['name', 'account_name']: searchName.account_name">
<md-toolbar>
<div class="md-toolbar-tools" ng-repeat="container in account | limitTo: 1">
<h1 class="md-display-3"> <a href="{{container.tagManagerUrl}}">{{container.account_name}}</a></h1>
</div>
</md-toolbar>
(.... some code that is not important)
//table start
<tr ng-repeat="container in account | filterBy: ['name', 'account_name']: searchName.name| filterBy: ['name', 'account_name']: searchName.account_name">
但是我不能在输入字段ng model=“searchName.name&&searchName.account\u name”中声明like,这会引发错误
解决方案我想试试是有一个下拉菜单,我可以选择按name
或account\u name
看起来像这样:
如果可以在just inputfield中同时按帐户名和名称进行搜索,如果不这样做,那就太好了。希望你能帮助我前进,并指导我需要什么以及如何去做(不需要你做所有的工作)
谢谢您可以同时按帐户名和姓名进行搜索,您可以将对象传递给您的筛选器
<input type="text" placeholder="Search" ng-model="search.name">
<input type="text" placeholder="Search" ng-model="search.account_name">
<tr ng-repeat="container in account | filter:{name: search.name, account_name: search.account_name}>
</tr>
html
谢谢,但这是我自己可以做的,但只使用一个输入字段是可能的吗?因为您可以使用自定义筛选器,我将使用自定义筛选器的代码更新我的答案。我很高兴能够提供帮助。
<input type="text" placeholder="Search" ng-model="search.name">
<input type="text" placeholder="Search" ng-model="search.account_name">
<tr ng-repeat="container in account | filter:{name: search.name, account_name: search.account_name}>
</tr>
$scope.customFilter = function(row){
if($scope.Search == undefined || $scope.Search == "")
return true;
else if(row.name.indexOf($scope.Search) !== -1 || row. account_name.indexOf($scope.Search) !== -1)
return true;
else
return false;
}
<tr ng-repeat="container in account | filter:customFilter>
</tr>