2017-02-09 120 views
1

我有json列表,它有一些輸入字段和一些下拉字段。現在當它顯示在數據表中時,我想根據字段類型在我的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列表,然後在表格應該顯示下拉。

我該怎麼做?如果條件在這裏工作? 提前致謝。

編輯: 亞歷克斯的意見後,我有我的編輯代碼如下

<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是我的json的SelectItem類型列表,它是它們的組件。這個taxFrequency列表綁定到下拉列表,如果我在硬編碼下拉列表中的某個頁面中使用它。 –