Angular 4:列表在替换后备阵列中的项目时没有更新

时间:2017-07-24 00:42:12

标签: javascript arrays angular

我使用的是Angular 4(ES 6),我遇到了问题。我有一个为数据表供电的数组。当我从数组中添加和删除项时,数据表的行为相应。但是当我更换一个项目时,即

 const indexOfOld = this.modelList.indexOf(oldThing);
 this.modelList[indexOfOld] = value;

我没有看到我的列表/数据表更新。我知道在其他以UI为中心的技术中,你可以踢VM并让它重绘(Flex - > invalidateDisplayList)。

有没有办法向Angular 4(ES 6)发出需要刷新数据表/列表的信号?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

更新后备阵列后我无法刷新ngx-datatable(https://github.com/swimlane/ngx-datatable),调用

后也无法刷新它
cd.markForCheck()

但是,在将新模型的值分配给旧模型后,我能够更新表格。

    else if(oldBatchProcess){
      value.creationDateFormatted = this.datePipe.transform(value.creationDate, 'yyyy-MM-dd hh:mm a');
      const indexOfOld = this.batchProcesses.indexOf(oldBatchProcess);
      this.batchProcesses[indexOfOld] = value;
      Object.assign(oldBatchProcess, value);
    }