如何在 <p-datatable> 中使用模板

How to use template in <p-datatable>

我有一个非常基本的问题,我自己无法回答,因为指向 http://www.primefaces.org/primeng 的大多数链接都不再有效。 我也试过注册到他们的论坛,但他们的激活邮件从未到达。

我使用 Angular2 并有一个包含两列的数据表:文件名和状态。 我要更改的状态栏。它现在包含一个从 1 到 4 的数字,我想根据状态显示一个字形。

我现在有了这个,正在运行:

<p-dataTable [hidden]="loading" [value]="files" selectionMode="single"  sortField="Status" [sortOrder]="-1">
  <p-column field="FileName" header="Naam" sortable="true"></p-column>
  <p-column field="Status" header="Status" sortable="true"></p-column>
</p-dataTable>

我试过了,只是为了测试模板,但没有任何变化:

<p-dataTable [hidden]="loading" [value]="files" selectionMode="single"  sortField="Status" [sortOrder]="-1">
  <p-column field="FileName" header="Naam" sortable="true"></p-column>
  <p-column field="Status" header="Status" sortable="true">
    <template let-file="rowData">
        {{file.Status == 1 ? "Yes" : "No"}}
    </template>
  </p-column>
</p-dataTable>

所以保存下来得出我没有正确使用它的结论。

我们正在使用 PrimeNG 1.0.0-beta.16

每个 p-column 可以有两个模板 - bodyheader,您应该指定它是哪一个。这不是强制性的,因为我认为 body 是默认值,在这种情况下这是您需要的,但这是一种很好的做法。您还需要将 pTemplate 添加到模板以便 p-column 使用它,这就是 p-column 不会显示您提供的模板的原因。因此,您的代码应如下所示:

<p-dataTable [hidden]="loading" [value]="files" selectionMode="single" sortField="Status" [sortOrder]="-1">
  <p-column field="FileName" header="Naam" sortable="true"></p-column>
  <p-column field="Status" header="Status" sortable="true">
    <ng-template let-file="rowData" pTemplate type="body">
        {{file.Status == 1 ? "Yes" : "No"}}
    </ng-template>
  </p-column>
</p-dataTable>