2016-09-07 99 views
0

角搜索假设你有下列对象:用于组合键

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

+2

创建自定义过滤器 –

+0

@PatrickReck你能举个例子吗? –

+0

例如,您想在字段中输入“Marc Ras”,然后对该全名进行研究? 您可能需要编写一些JavaScript来解析写入的数据(全名writed),然后进行研究。 你得到了分裂的方法。 – Alburkerk

回答

1

添加到您的控制器

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

,并添加过滤器NG-重复

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

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