Aktywne Wpisy

naksu +8
#pytaniedoniebieskichpaskow fajna taka sukienka na jesień czy nie?

Niedoszly_Doomer +26
Norris blagam cie
#f1
#f1
Skopiuj link
Skopiuj link

Wykop.pl
Podróże
Gospodarka
Ukraina
Technologia
Motoryzacja
Sport
Rozrywka
Informacje
Ciekawostki
Cześć, w skrócie: czy może mi ktoś poradzić jak podmienić observable array, na array który dostaje w resulcie responsa z api?
W skrócie korzystam z dynamicznego forma gdzie niektóre jego pola - selecty można filtrować, dane do tych pól trzymam w => filteredOptions: { [key: string]: Observable } = {}; gdzie key to controlName i observable to są itemy do tego selecta. Każde wpisanie w input powoduje przefiltrowanie listy dlatego musi to być observable.
Nie to jest problemem - problemem jest to, że do niektórych selectów mogę dodawać nowe itemy, po dodatniu itema leci zapis na BE i zwraca mi zaktualizowaną listę, chciałbym tą listę podmienić ale nie wiem jak to zrobić w sposób właściwy. Tutaj jest kod jak to wygląda obecenie (nie działa, ale operowałem na istniejącym w komponencie arrayu dodając nowy item, a teraz chcę całą listę zastąpić):
https://paste.ofcode.org/mGcM6Y38dLsbNGHJ3nUju7
.subscribe(). Samo.pipesię nigdy nie uruchomi, bez.subscribe().Powinieneś robić emisję zdarzenia z nowym kontentem w ciele subscribe z calla do API.
Robi się to przez obiekt typu
EventEmitterlub przezSubject- oba implementują interfejs Observable, więc możesz potem takie coś przekazać dalej (np. serwisem) i w docelowym komponencie robić.subscribe()./Subjectprzy założeniu, że drugi Observable to ten sam obiekt coEventEmitter/Subject.
.emit(...)W jednym wołasz
(wrapper Angularowy - boEventEmitter), a w drugim.next(...)(czysty RxJS - boSubject`).this.filteredOptions[field.Label]mam przypisany observable z listą itemów. Teraz w subie dostaję result który jest nową listą itemów więc dlathis.filteredOptions[field.Label]chcę przypisać tą nową listę itemów jako observable. Na necie znalazłem coś takiego jakthis.filteredOptions[field.Label] = of(result)zaraz sprawdzę czy zadziałaNie mieszaj nigdy synchronicznych operacji z asynchronicznymi, bo to ci wyjdzie spod kontroli.
Aczkolwiek Angular jest bardzo tolerancyjny do mieszania tego.
Tutaj masz artykuł, który pozwoli ci wejść na kolejny poziom wtajemniczenia:
https://blog.angular-university.io/onpush-change-detection-how-it-works/
Chodzi o:
changeDetection: ChangeDetectionStrategy.OnPushoraz używanieAsyncPipe.Ogólnie Observable nie trzymają wartości, one są "końcówkami/uchwytami", które przepychają wartości, aby zostały obsłużone w miejscach,