角度-从异步管道删除行

时间:2018-11-03 22:31:30

标签: angular observable angular-pipe

从数组中删除行的最常见方法是

this.countries.splice(pos, 1);

您有一个数组“ countries”,并从“ pos”位置删除了1个元素。

如果我们使用异步管道怎么样?

countries$ = this.areasService.getCountries();


*ngFor="let c of (countries$ | async); let i=index"

如何从“ pos”位置删除元素?没有要删除的数组...

1 个答案:

答案 0 :(得分:2)

您无法从Observable中删除。它没有缓冲区,也不会跟踪发送了哪些元素。

您可以使用一个数组,并且角度检测会随着赋值而改变:

countries = []

onInit

this.areasService.getCountries().subscribe( val=> this.countries =val);

html

*ngFor="let c of countries; let i=index"

重要

进行拼接时,应重新分配此国家/地区,以触发更改检测。

deleteEl(pos){
  this.countries.splice(pos, 1);
  this.countries = [...this.countries];
}