Angular : Array.splice 在带管道的 ngFor 中

Angular : Array.splice in an ngFor with a pipe

我有一个名单:names = ['test1', 'test2', 'test3']

我在一个简单的布局中显示它们,用一个简单的管道搜索所有名称,包括用户输入:

<input type="text" [(ngModel)]="query">
<div *ngFor="let n of names | filterBy: query">{{n}}</div>

名字旁边有一个小叉号表示将其从列表中删除。

问题是,当我删除之前搜索过的项目(例如 test2)时,过滤器没有实现。 是否可以在更改集合后刷新过滤器返回的内容?

是的,修改后使用slice()创建数组副本,然后Angular会识别更改并再次调用管道。 Angular 不检查对象数组的内容以进行更改,仅检查对象标识。