2015-03-06 3 views
1

У меня есть массив объектов, которые я повторяю ng. У меня есть окно поиска для фильтрации результатов. Каждый объект содержит множество свойств, некоторые из которых не относятся к фильтру поиска. Я хотел бы ограничить фильтр только двумя свойствами. В приведенном ниже примере я хотел бы игнорировать свойство «gender» и фильтровать только «имя» или «телефон».ng-repeat фильтр по массиву объекта только по определенным свойствам

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!doctype html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Example - example-example52-production</title> 
 
    
 

 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script> 
 
    
 

 
    
 
</head> 
 
<body ng-app=""> 
 
    <div ng-init="friends = [{name:'John', phone:'555-1276', gender: 'male'}, 
 
          {name:'Mary', phone:'800-BIG-MARY', gender: 'female'}, 
 
          {name:'Mike', phone:'555-4321', gender: 'male'}, 
 
          {name:'Adam', phone:'555-5678', gender: 'male'}, 
 
          {name:'Julie', phone:'555-8765', gender: 'female'}, 
 
          {name:'Juliette', phone:'555-5678', gender: 'female'}]"></div> 
 

 
    Search: <input ng-model="searchText"> 
 
    <table id="searchTextResults"> 
 
    <tr><th>Name</th><th>Phone</th></tr> 
 
    <tr ng-repeat="friend in friends | filter:searchText"> 
 
     <td>{{friend.name}}</td> 
 
     <td>{{friend.phone}}</td> 
 
    </tr> 
 
    </table> 
 
</body> 
 
</html>

ответ

0

Вам нужен логотипо фильтр: -

<table id="searchTextResults"> 
    <tr><th>Name</th><th>Phone</th></tr> 
    <tr ng-repeat="friend in friends | filter:search"> 
     <td>{{friend.name}}</td> 
     <td>{{friend.phone}}</td> 
    </tr> 
    </table> 

    $scope.search = function (row) { 
     return (angular.lowercase(row.name).indexOf($scope.searchText || '') !== -1 || angular.lowercase(row.phone).indexOf($scope.searchText || '') !== -1); 
    }; 

Plunker

+0

благодаря это работает, было бы неплохо сделать это HTML, но это не кажется как есть простой способ. –

Смежные вопросы