当我更改主要对象时,角度8过滤器管道不会更新

问题描述

我正在管道中使用过滤器作为数组

 *ngFor="let device of devices|filter: ['Department',departmentsFilter] |filter:['Name',searchName]; let i = index "

当我过滤然后更改设备索引时,例如this.devices[i] = obj,直到我在filter(再次过滤)或unfilter(过滤器文本框为空)中写入内容后,我才能看到更改。

关于如何获得过滤结果的任何想法都表明了我对主要对象this.devices所做的更改

解决方法

this.devices[i] = obj不会反映为this.devices中的变化,因此解决方案是使用类似以下的内容

下面是角度文档https://angular.io/guide/pipes

中的一条语句

Angular忽略更改的数组元素的原因是对数组的引用未更改。由于数组相同,因此Angular不会更新显示。

  this.devices[i] = obj
  this.devices = [...this.devices];

具有上述更改检测功能的设备将启动并更新用户界面