Występują pewne problemy w mojej aplikacji jonowej (dane aktualizowane asynchronicznie, ale interfejs użytkownika nie jest odpowiednio aktualizowany). Długo podrapałem się po tej kwestii, a teraz próbuję przetestować inne podejście: używając Observables
. Ale nie jestem pewien, jak to wdrożyć. Samouczki z Observables
w sieci skupiają się na korzystaniu z usługi Http
, która już zwraca wartość Observable
. Mój scenariusz jest następujący:Angular2 Observable List
Mam DataService
zawierający listę obiektów Person
. Usługa ma getter, który zwraca tę listę.
export class DataService {
private _list: Person[] = [];
get list(): Person[] { return this._list }
}
Wcześniej byłem bezpośrednio z tej listy w moich elementów:
<ion-list>
<ion-item *ngFor="let person of dataService.list">
{{person.name}}
</ion-item>
</ion-list>
Teraz chcę dodać kolejny getter do DataService
że wróci się Observable
listy Person[]
zamiast. To, czego nie wiem, to:
- Jak i gdzie zdefiniować
Observable
dla listy. Czy definiuję właściwośćObservable
jako właściwośćDataService
i inicjalizuję ją w konstruktorze, czy też zwracam nową wartośćObservable
bezpośrednio z programu pobierającego usługi? A jak mogę zawinąć listę wObservable
? - Jak korzystać z tego gettera
Observable
w moim komponencie? * ngFor = "???" - Kiedy lista zostanie zmieniona asynchronicznie, w jaki sposób mogę zasygnalizować
Observable
, że lista została zmodyfikowana?
Mam nadzieję, że rozwiąże to moje problemy z aktualizowaniem interfejsu użytkownika.
Jaki przedmiot jest "obserwowalny"? Czy to RxJava ** Observable **? –
RxJs Wierzę ... To jest biblioteka używana domyślnie przez Angular2, prawda? – AweSIM
Wow, jak mało wiem o Angular. Jest to platforma krzyżowa zarówno dla systemu Android, jak i iOS? –