2015-08-13 2 views
-3

Я пытаюсь создать систему фильтрации с angular.js, до сих пор с помощью нескольких добрых людей на здесь, я в конечном итоге с этим:фильтр с поиском по ключевому слову

  1. фильтра с Тип: она работает
  2. фильтр с зарплатой: она работает

Теперь я стараюсь фильтровать результаты по ключевому слову, моя программа: plunker

Можете ли вы помочь мне с функцией SearchText ??

<body data-ng-controller="TestController"> 
    <br/> 
    <h4> Filters</h4> 
    <strong>type de contrat:</strong> 
    <br> 
    <input type="checkbox" data-ng-model='type1' data-ng-true-value='contractuel' data-ng-false-value='' /> contractuel 

    <input type="checkbox" data-ng-model='type2' data-ng-true-value='mixte' data-ng-false-value='' /> mixte 

    <input type="checkbox" data-ng-model='type3' data-ng-true-value='freelance' data-ng-false-value='' /> freelance 
    <br> 
    <strong>salary :</strong> 
    <br> 
    <input type="checkbox" data-ng-model='salary1' data-ng-true-value='1000' data-ng-false-value='' /> 
    < 1000 <input type="checkbox" data-ng-model='salary2' data-ng-true-value='2000' data-ng-false-value='' /> between 1000 and 2000 

    <input type="checkbox" data-ng-model='salary3' data-ng-true-value='3000' data-ng-false-value='' /> between 2000 and 3000 

    <input type="checkbox" data-ng-model='salary4' data-ng-true-value='4000' data-ng-false-value='' /> >3000 
<br> 
search:<input type=text placeholder="keyword" ng-model="searchText"> 
    <table id="missions" border="5"> 
    <tr> 
     <th> 
     <div align="center">mission title</div> 
     </th> 
     <th> 
     <div align="center">mission salary</div> 
     </th> 
     <th> 
     <div align="center">mission domaine name</div> 
     </th> 
     <th> 
     <div align="center">mission Nature</div> 
     </th> 
    </tr> 
    <tr data-ng-repeat="mission in missions | filter:nature | filter:salary | filter:searchText "> 
     <td height="28">{{mission.title}}</td> 
     <td>{{mission.salary}}</td> 
     <td>{{mission.domain.name}}</td> 
     <td>{{mission.missionNature.nature}}</td> 
    </tr> 
    </table> 

</body> 
+0

Ваша ссылка plunker сломана, исправить это, пожалуйста. – Cracker

+0

исправлено .. Коррекция @Cracker – mrmadou

+0

Здесь нет проблем с постановкой или вопросом – charlietfl

ответ

2

Проблема в том, что ваш текст фильтра применяется ко всем объектам. Это означает, что когда вы фильтруете «portu», например, он вернет весь переводчик, потому что в вашем описании вы имеете возможность слова. Чтобы этого избежать, вам не нужно многого. Вы должны указать, по какой форме вы хотите искать.

search:<input type=text placeholder="keyword" ng-model="searchText.title"> 

Здесь я просто положил название вашей модели. Из-за этого, когда он применит фильтр, он найдет матч только в вашем названии. Итак, если вы попробуете снова с «portu», будет только 3 матча. Все 3 имеют это слово в заголовке.

Working Plunkr