2017-02-09 8 views
1

私はいくつかの入力フィールドといくつかのドロップダウンフィールドを持つjsonリストを持っています。今私はdatatableでそれを表示するとき、私は私のjsonリストのフィールドの種類に基づいて入力フィールドまたはドロップダウンフィールドを表示したい。PrimeNG - datatable:primeNgデータテーブルに列とそのフィールドを動的にロードする方法は?

私のコードは、このコードが動作し、すべてのデータと列を示している

<p-dataTable [value]="earningList" [responsive]="true" reorderableColumns="true" [editable]="true" > 
<p-column [style]="{'width':'38px', 'padding-left':'10px'}" selectionMode="multiple"></p-column> 
<p-column *ngFor="let column of earningColumns" [field]="column.field" [header]="column.header" [editable]="column.editable" [style]="{'width':'100px'}"> 

</p-column></p-dataTable>           

ですが、私は、フィールドがJSONリストのドロップダウンは、それがドロップダウンを表示する必要があり、テーブルに続いている場合には表示したいです。

どうすればいいですか?条件がここで働くのですか? ありがとうございます。

EDIT: はアレックスのコメントの後、私は

<p-column *ngFor="let column of earningColumns" [field]="column.field" [header]="column.header" [editable]="column.editable" [style]="{'width':'100px'}"> 
<template let-col let-earnings="rowData" pTemplate="editor"> 
    <p-dropdown *ngIf="column.isDropdown" [style]="{'width':'100px'}" [options]="taxFrequency"></p-dropdown> 
</template> 
に従うように私のコードを編集していますが、それはリストなしでドロップダウンを示しています。

答えて

1

質問に対する回答は、Templatesです。 これらを使用して、データの値に応じてセルをスタイルすることができます。そこには*ngIf="column.isDropdown"のようなものを使ってドロップダウンを表示することができます。

+0

* ngIfで試してみましたが、ドロップダウンを表示していますが、リストが表示されていないため、空白のドロップダウンが表示されます。 –

+0

これは 'taxFrequency'の範囲に問題があるようです。私はこれがどこにあるか、あなたが正しい方法でそれにアクセスしているかどうかは分かりません。 –

+0

taxFrequencyはSelectItem型の私のjsonリストであり、コンポーネント内にあります。このtaxFrequencyリストは、ページのどこかのハードコードされたドロップダウンリストでこれを使用すると、ドロップダウンにバインドされています。 –

関連する問題