Aktywne Wpisy

MonazoPL +76
Ruszamy z nowym #rozdajo – wygraj kartę podarunkową do Allegro o wartości 100 zł!
Aby wziąć udział w konkursie, zaplusuj ten wpis oraz w komentarzu krótko odpowiedz na pytanie konkursowe: Jeśli wygrasz, na co wydasz (lub do czego dołożysz) to 100 zł? ( ͡~ ͜ʖ ͡°)
––––––––––––––––––––––––––––––
Aby wziąć udział w konkursie, zaplusuj ten wpis oraz w komentarzu krótko odpowiedz na pytanie konkursowe: Jeśli wygrasz, na co wydasz (lub do czego dołożysz) to 100 zł? ( ͡~ ͜ʖ ͡°)
––––––––––––––––––––––––––––––
źródło: millennium 900 zł
Pobierz
Je22 +297





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().źródło: comment_1594334769H3sEB1gntgR7JChBtWqg3e.jpg
Pobierz/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