Witam.
Kolejne Angularowe pytanie z serii (najprawdopodobniej) głupich.
Piszę mini ERP w Angular. Mam API do wymiany danych i wszystko sobie działa oprócz jednej kwestii, w której robię chyba nie za dobre objeścia.
W menu głownym na środku jest guzik, który odpowiada za globalnego kontrahenta. Jeśli jest on wybrany system pokazuje tylko jego dokumenty, rozliczenia, zaległości itp. itd.
Problem polega na tym, że wybór tego kontrahenta nie filtruje mi danych dynamicznie (muszę odświeżyć stronę).
-
Niestety
ngDoCheck()
odpada, ponieważ zmiana kontrahenta powoduje zapętlenie się tej metody i wczytuje dane w nieskończoność. -
Wywołanie
ngOnInit()
aktywnego komponentu wydaje się nie być optymalnym rozwiązaniem. -
Znalazłem gdzieś w internetach, że można takie rzeczy ogarnąć w
url
, w sensieActivatedRoute
i subskrybowaćqueryParams
, tylko jak takieurl
budować gdy kliknę na button z kontrahentem? Musiałbym zrobićnavigate
, a to mi przeładuje stronę. Musiałbym stworzyć jakiśService
, który by w odpowiedni sposób takiurl
generował? -
Input()
iOutput()
niestety działa tylko przy komponencie nadrzędnymapp.component
i podrzędnymheader.component
, w przypadku<router-outlet>
zaczyna się problem, a komponenty dokumentów, rozliczeń są w<router-outlet>
Oczywiście wybrany kontrahent jest zapisywany do sessionStorage
lub localStorage
, stąd po refreshu mi wszystko działa.
Jest jakieś sensowne rozwiązanie tego problemu?
PS.
Kod jest dość chaotycznie porozrzucany, żeby załapać sens tego co już napisałem. Jeśli koniecznie ktoś będzie chciał to jakoś wrzucę.