我正在尝试循环数组,此数组中的每个对象都是html上的表。 它显示如下:
<p-table [value]="section" *ngFor="let section of sections">
<ng-template pTemplate="header">
<tr>
<th>Quantity</th>
<th>Length</th>
<th>m^2</th>
<th></th>
</tr>
<tr>
<th colspan="4">
<div (click)="showDialog()" class="text-left">+ A - Flat Panel RAW MDF Red Gloss
- $95 / sqm
</div>
</th>
<th colspan="8">
<div class="md-inputfield">
<input type="text" class="form-control" pInputText>
</div>
</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-rowData *ngFor="let piece of rowData.Pieces">
<tr>
<td>
<p-spinner [(ngModel)]="rowData.Quantity"></p-spinner>
</td>
<td pEditableColumn>
<p-cellEditor>
<ng-template pTemplate="input">
<input type="text" [(ngModel)]="rowData.Length">
</ng-template>
<ng-template pTemplate="output">
{{rowData.Length}}
</ng-template>
</p-cellEditor>
</td>
<td>
{{CalculateTotalArea(rowData)}}
</td>
<td>
<button pButton type="button" icon="fa-close"></button>
</td>
</tr>
</ng-template>
</p-table>
但是这给了我一个错误this.value.sort is not a function
,这里是数组
this.pieces = [{
Quantity: 2, Length: 3, Width: 3, Thickness: 4
}]
this.sections = [
{ Pieces: this.pieces, text: "abc" }
]
我正在尝试将代码推送到Plunker但我不知道如何将primeng版本升级到"primeng": "^5.2.0-rc.1",
然后Plunker现在不工作
任何人都帮我更新primeng库并建议我如何解决这个bug。
这是链接Plunker:Plunker
答案 0 :(得分:0)
这是因为,p-table期望一个数组通过value
,但是你要传递
导致错误的{ Pieces: this.pieces, text: "abc" }
。您必须删除*ngFor="let section of sections"
并像这样传递您的数组
<p-table [value]="sections">
或者如果你真的想要在你的页面中拥有大量的表格,那么你的sections
数组应该像下面的那样(多维):
// for the sake of simplicity, I named your objects as 'item'
this.sections = [
[item1, item2, item3],
[item10, item11, item12],
[item15, item50, item32]
]