2016-09-07 70 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> 

這應該給你的自定義過濾器是如何工作的想法。我沒有測試代碼,所以你可能需要做一些修改。