我正在使用primeng 4.3
我已经编码了这个原始数据表:
<p-dataTable [value]="quotes" [editable]="true">
<p-column *ngFor="let col of cols" [field]="col.field
[header]="col.header" [editable]="col.editable">
<ng-template let-col let-quote="rowData" pTemplate="editor">
<p-spinner size="30" [(ngModel)]="quote[col.field]" name="quote"</p-spinner>
</ng-template>
</p-column>
</p-dataTable>
this.quotes
更改时出现问题。我的意思是,当在this.quotes
上填充新数组时,数据表不会填充更改。
为了确保已填充新数组,我正在使用:
this.quotes = Object.assign([], calculatedQuotes);
因此,我的意思是,每次分配this.quotes
时,它都有一个对新数组的新引用。
有什么想法吗?
我正在使用primeng 4.3
答案 0 :(得分:1)
变更检测表可能需要了解其值的变化 在某些情况下,例如重新申请排序。为了性能,这 仅当值的引用更改为setter时才执行 用于代替ngDoCheck / IterableDiffers可以减少 性能。因此,当您操纵值时,例如删除或 添加项目,而不是使用诸如push,splice之类的数组方法 使用传播算子或类似方法创建新的数组引用。
所以您可以正确查看表格中的更改:
this.quotes = Object.assign([], calculatedQuotes);
要将新项目添加到网格中,可以使用传播运算符:
this.quotes = [...this.quotes , newObject];