Metoda startup pre komponenty
- Čamo
- Člen | 789
Zdravím, včera som sa dosť vytrápil s jednou kolekciou zanorených komponenta ktoré sa navzájom invalidovali cez ajax a dospel som k záveru, že by sa v komponentách hodila metóda startup, kde by sa dali nastaviť nejaké globálne premenné pre komponentu a jej potomkov. No a hlavne tá metóda by sa mala spúštať aj po zavolaní redrawControl() na každej komponente v hierarchii. Kôli tomu aby každá komponenta mala po ajaxe aktuálne dáta k dispozícii a aby boli aktuálne ak ich predáva ďalším komponentám.
Neviem či je to dobrý nápad, ale v každom prípdade je to nápad tak som to sem napísal. Možno je názov startup trochu zavádzajúci vzhľadom k ajaxu, lebo v presentery sa startup po redrawControl už nespúšta ak sa nemýlim.
Editoval Čamo (11. 10. 2017 11:15)
- David Matějka
- Moderator | 6445
podobneho efektu muzes docilit prekrytim metody attached, respektive loadState – ty se volaji hned po pripojeni k presenteru (resp. rodici). problem je (jak jsem povidal v te prednasce, na kterou jsem te odkazoval), ze komponenty se mohou incicializovat v ruznych fazich cyklu presenteru, od inicializace parametru, pres zpracovani signalu nebo az treba pri vykreslovani v sablone. takze „startup“ by byl trochu matouci, jelikoz by clovek ocekaval korelaci s startupem presenteru.
- Čamo
- Člen | 789
Attached je určený pre event, to by som vynechal.
A ten loadstate by sa ako zachoval v situácii, že nadradená komponenta si v loadstate nastaví nejakú kolekciu do $this->collection a potom ju predá cez create() do nejakej vnorenej komponenty? Dostane vnorená komponenta updatnutú kolekciu po ajaxe? To je to o čo mi ide. Lebo inak si musím v každej továrni na vnorené komponenty aktualizovať dáta z rodiča. A v rodičovi tak isto.
Tak nech sa tá metóda volá afterRedraw() ale mala by sa spustiť aj bez volania redrawcontrol().
PS: Kto mi tam dal to mínusko prosím vás?
Editoval Čamo (11. 10. 2017 12:32)
- David Matějka
- Moderator | 6445
a nemuze ta tvoje komponenta tu kolekci vybirat az v render? ze by od nadrazene komponenty dostala jen kriteria pripadne nejakou lazy kolekci?