Угловой - Удалить строку из асинхронной трубы - PullRequest
0 голосов
/ 04 ноября 2018

Самый распространенный способ удаления строки из массива -

this.countries.splice(pos, 1);

У вас есть массив "стран", и вы удаляете 1 элемент из позиции "pos".

Как насчет того, чтобы использовать асинхронную трубу?

countries$ = this.areasService.getCountries();


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

Как я могу удалить элемент из позиции "pos"? Нет массива для удаления из ...

1 Ответ

0 голосов
/ 04 ноября 2018

Вы не можете удалить из наблюдаемой. Он не имеет буфера и не отслеживает, какие элементы были отправлены после отправки.

Вы можете использовать массив, и тот факт, что угловое обнаружение изменений при назначении:

countries = []

OnInit

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

html

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

Важно

при соединении следует переназначить this.countries, чтобы активировать обнаружение изменений.

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