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>