角度搜索组合键

时间:2016-09-07 14:14:35

标签: javascript angularjs angularjs-ng-repeat

假设您有以下对象:

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组合而成?

1 个答案:

答案 0 :(得分:1)

将此添加到您的控制器

 $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>

这可以让您了解自定义过滤器的工作原理。我还没有对代码进行测试,因此您可能需要进行一些修改。