2013-05-24 8 views
5

Mam stół. Chcę filtrować tabelę w zależności od wybranej wartości w polu wyboru. Wartość porównawcza to {{pipe.pipe_id}} w polu wyboru i {{dimension.pipe_id}} w tabeli. Chyba istnieje proste rozwiązanie? Jakieś sugestie?Angular JS, stół filtracyjny z pudełkiem wyboru

Pipe: 
    <select id="select01"> 
     <option ng-repeat="pipe in pipes">{{pipe.code}} - {{pipe.title_en}}</option> 
    </select> 


    <table class="table table-striped"> 
     <thead> 
      <tr> 
       <th>Pipe</th> 
       <th>Size</th> 
       <th>Inner diameter</th> 
       <th>Outer diameter</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr ng-repeat="dimension in dimensions" > 
       <td>{{dimension.pipe_id}}</td> 
       <td>{{dimension.nominalsize}}</td> 
       <td>{{dimension.innerdiameter}}</td> 
       <td>{{dimension.outerdiameter}}</td> 
      </tr> 
     </tbody> 
    </table> 
+0

W polu wyboru najlepiej używać opcji ng. https://docs.angularjs.org/api/ng/directive/select – Jared

Odpowiedz

8

Polecam pomocą ng-filter.

Ten link jest prostym przykładem przy użyciu listy spraw. jsfiddle using ng-filter

Trzeba będzie wiązać cokolwiek wejście korzystasz z ng-model="varname"

domyślnych ng-filtr do wszystkich pól w tablicy. Można go filtrować do pojedynczej kolumny lub wskazywać funkcję w kontrolerze.

Szukaj Pole

<select ng-model="searchparam"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
</select> 

szukać pojedynczą kolumnę

<select ng-model="searchparam.columnOne"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
</select> 

Powtarzające Sekcja
(model filtr pozostaje taka sama nawet, gdy wejście określa specyficzny kolumna)

<tr ng-repeat="dimension in dimensions | filter: searchparam"> 
    <td>{{dimension.columnOne}}</td> 
    <td>{{dimension.columnTwo}}</td> 
</tr>