So entfernen Sie bestimmte Elemente aus Beobachtbare<Array<alle>>
Es ist ein Beobachten von dem array von Orten:
places: Observable<Array<any>>;
In der Vorlage, die er verwendet, mit dem async-Leitung:
<tr *ngFor="let place of places | async">
...
</tr>
Nachdem einige user-Aktionen habe ich entfernen müssen, den Ort mit bestimmten id aus diesem array. Ich habe so etwas wie dies in meinem code, aber es funktioniert nicht:
deletePlace(placeId: number): void {
this.apiService.deletePlace(placeId)
.subscribe(
(res: any) => {
this.places
.flatMap((places) => places)
.filter((place) => place.id != placeId);
},
(err: any) => console.log(err)
);
}
Können Sie mir helfen mit diesem?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht tun es auf diese Weise, da Sie nicht "update" eine beobachtbare (d.h. es wird nicht halten die Staaten), aber Sie können auf ein Ereignis reagieren, durch Sie.
Für Ihren Fall, ich würde nutzen Sie die
scan
Betreiber und Zusammenführen von zwei strömen zu einem einzigen:Hier ist ein Beispiel:
Auslösen, ein element löschen, senden Sie einfach eine Veranstaltung zum Thema:
Sehen diese plunkr: https://plnkr.co/edit/8bYoyDiwM8pM74BYe8SI?p=preview.
Die filter-Funktion ist unveränderlich und wird sich nicht ändern den ursprünglichen array.
Ich würde die deletePlace Funktion, so etwas wie dieses:-