javascript - Angular 4 : List doesn't update on replacement of item in backing array

标签 javascript arrays angular

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

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

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

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

非常感谢任何帮助。

最佳答案

更新后备数组后,我无法刷新 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);
    }

关于javascript - Angular 4 : List doesn't update on replacement of item in backing array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45271182/

相关文章:

javascript - Angular:无法导入 Express

javascript - 减少谷歌地图成本,只调用谷歌地图 javascript api

javascript - 无限滚动更改ID问题

arrays - 用Z3记录

arrays - 在 Common Lisp 中通过引用(而不是通过值)传递子数组

Angular - 可以有条件地应用指令吗?

javascript - Electron:在主渲染器和渲染器中使用相同的单例

javascript - AJAX 请求触发两次,而成功被调用一次

arrays - 减少要在 Swift 中设置的数组

angular - routerLink 在 Angular 6 中不起作用