从数组中删除行的最常见方法是
this.countries.splice(pos, 1);
您有一个数组“ countries”,并从“ pos”位置删除了1个元素。
如果我们使用异步管道怎么样?
countries$ = this.areasService.getCountries();
*ngFor="let c of (countries$ | async); let i=index"
如何从“ pos”位置删除元素?没有要删除的数组...
答案 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];
}