2017-06-02 6 views
2

テーブルヘッダに配置されたフィルタ入力の可視性を切り替える必要があります。PrimeNG datatable:フィルタ入力のカスタマイズ

<input type="text" 
     class="ui-column-filter ui-inputtext ui-widget ui-state-default ui-corner-all" 
     [value]="dt.filters[col.field] ? dt.filters[col.field].value : ''"    
     (keyup)="dt.onFilterKeyup($event.value,col.field,col.filterMatchMode)" 
     *ngIf="filterIsShown"/> 

https://plnkr.co/edit/o2wLmXHMb1uI5EvBmucr?p=preview

しかし、私はエラーERROR TypeError: Cannot read property 'filters' of undefined

を持っだからここで私はdt.filtersオブジェクトを取得する必要があります: 私は、このようにそれを実行しようとしましたか?

------ -------

おかげPierreDuc答えの更新されたが、フィルターがまだ動作しません:(

を私はここで見つけるに応じてテンプレートにすべてのパラメータを使用https://github.com/primefaces/primeng/blob/master/src/app/components/datatable/datatable.ts

は、ここでは、あなたの<p-dataTable>に変数として#dtを追加する必要がありますplunker
http://plnkr.co/edit/2MWxw0rfcLsDxmuIYRv9?p=preview

+0

PrimeFacesに関連していないが、PrimeNG ... – Kukeltje

答えて

4

を更新しています。これは、A作成しますテンプレートあなたのDataTableインスタンスへの変数のリンク:

plunkr

<p-dataTable ... #dt> 

そして、あなたは正しい値を渡すためにあなたのkeyup方法を変更する必要があります。

(keyup)="dt.onFilterKeyup($event.target.value, col.field, col.filterMatchMode)" 

plunkr

あなたがする必要があります、しかし、それが機能するには単語(Apple)全体を入力してください。しかし、私はそれを修正するためにそれを残す:)

+0

ありがとう、しかし、私のフィルタはまだ動作しません。私は何を変える必要があるか知っていますか? https://plnkr.co/edit/2MWxw0rfcLsDxmuIYRv9?p=preview – kipris

+0

@kipris更新された私の答え – PierreDuc

+0

ありがとう! :) – kipris

関連する問題