2017-01-23 6 views
0

ページングにng-paginateを使用していますが、フィルタを使用すると少し問題があります。だから私は3つのオプションをドロップダウンしている。angle-jsフィルタ付きng-paginate

ドロップダウンからオプションを選択すると、データはフィルタリングされますが、ページのデータのみがフィルタリングされます。 例100個のレコードがあり、10個のレコードのデータのみがフィルタリングされ、各ページに10個のレコードが表示されています。 私は現在のページだけでなく、すべてのレコードに対してフィルタが機能するはずのソリューションを探しています。 ここは翡翠のコードです。

<label for="exampleSelect1">Vehicle-Mode 
    <select id="exampleSelect1" name="opt" value="opt" ng-model="check" ng-change="getValue(check, fromDate, toDate)" class="form-control"> 
    <option>Booked</option> 
    <option>checked_in</option> 
    </select> 
</label> 
<tr dir-paginate="vehicle in vehicles | filter:search | itemsPerPage:1000"> 
    <td>{{xxx}}</td> 
    <td>{{yyy}}</td> 
</tr> 
<dir-pagination-controls max-size="1000" direction-links="true" boundary-links="true"></dir-pagination-controls> 
+0

コントローラコードを投稿できますか?具体的には、「車両」に何が表示されているか、「ng-change」ではどうなり、「search」はオブジェクトや値として設定されているかを確認する必要があります。 –

+0

@MatthewCawley私のコントローラーで私はhttp呼び出しを行い、$ scope.vehiclesに結果を割り当てています。何かのようなもの。 $ http.get( '/ getvehicles')。then(function(data){$ scope.vehicles = data;})//データは車両の配列です –

答えて

0

だから、解決策は

なぜソート/フィルタは、現在のページのみに影響を与えない彼らのドキュメントに よくあるご質問でしたか?

これは一般的な問題です。通常、itemsPerPageフィルタが式の最後にないためです。たとえば、次の点を考慮してください

<li dir-paginate="item in collection | itemsPerPage: 10 | filter: q">...</li> <!-- BAD --> 

この場合、コレクションは、最初itemsPerPageフィルタによって10の項目に切り捨てられ、そしてそれらの10の項目のみフィルタリングされます。解決策は、itemsPerPageフィルタがソート/フィルタリングの後に来るようにすることです:

<li dir-paginate="item in collection | filter: q | itemsPerPage: 10">...</li> <!-- GOOD --> 
関連する問題