将一些值添加到列表后,角度数据表不会刷新

问题描述 投票:0回答:2

将一些值添加到列表后,角度数据表不会刷新

     <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);
angular angular-datatables
2个回答
1
投票

试试这个,

this.dList[this.selectedIndex].contactData = [...this.dList[this.selectedIndex].contactData, obj]

这可能会发生,因为更新阵列后p-dataTable不会被触发。要触发,您需要创建新数组并将所有数据放入其中


0
投票

因为您将数据推送到列表,但您没有更改其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);
© www.soinside.com 2019 - 2024. All rights reserved.