Angular搜索组合键

Angular search for combined key

本文关键字:组合 搜索 Angular      更新时间:2023-09-26

假设你有以下对象:

var user: {firstname: 'Marc', lastname:'Ras', age:30};

在一个叫做:user_array

的数组中有很多这样的对象

现在您希望在一个表中显示它们,因此您创建了您的表:

<table>
  <thead>
    <th>Full name</th>
    <th>Age</th>
  </thead>
  <tbody>
    <tr ng-repeat="user in user_array">
      <td>{{user.firstname + ' '+user.lastname}}</td>
      <td>{{user.age}}</td>
    </tr>
  </tbody>
</table>

现在您希望创建一个输入字段,您可以在其中搜索用户的全名:

这里是我的结尾:S如何搜索组合键?通常你会写:

<input type="text" ng-model="search.fieldname" />

但是这里不能这样做,因为字段是由两个fieldnames组合而成的

添加到你的控制器

 $scope.filterNameLastName = function (user) {
          var fullname = user.firstname + ' '+ user.lastname;
          if(fullname == $scope.searchParamater)
             return true;
          else
             return false;
        };

并将过滤器添加到ng-repeat

<table>
  <thead>
    <th>Full name</th>
    <th>Age</th>
  </thead>
  <tbody>
    <tr ng-repeat="user in user_array | filter:filterNameLastName ">
      <td>{{user.firstname + ' '+user.lastname}}</td>
      <td>{{user.age}}</td>
    </tr>
  </tbody>
</table>

这应该能让你了解自定义过滤器是如何工作的。我还没有测试代码,所以你可能需要做一些修改。