将一些值添加到列表后,角度数据表不会刷新
表
<p-dataTable class="pc-datatable" [value]="dList[i].contactData" [responsive]="true">
ts文件添加
let obj= new ContactData();
obj.conPerson = this.contactDialogForm.get("contPerson").value;
obj.conMode = this.contactDialogForm.get("contMode").value;
obj.conDetail = this.contactDialogForm.get("contDetail").value;
this.dList[this.selectedIndex].contactData.push(obj);
试试这个,
this.dList[this.selectedIndex].contactData = [...this.dList[this.selectedIndex].contactData, obj]
这可能会发生,因为更新阵列后p-dataTable
不会被触发。要触发,您需要创建新数组并将所有数据放入其中
因为您将数据推送到列表,但您没有更改其reference
,并且此更改可能不是角度的detachable
。即使这是一个不好的做法,这应该可以解决您的问题:
let obj= new ContactData();
obj.conPerson = this.contactDialogForm.get("contPerson").value;
obj.conMode = this.contactDialogForm.get("contMode").value;
obj.conDetail = this.contactDialogForm.get("contDetail").value;
this.dList[this.selectedIndex].contactData.push(obj);
// change reference by re-assignment
this.dList[this.selectedIndex].contactData = [].concat(this.dList[this.selectedIndex].contactData);