Invalidace snippetu komponenty s jiným rendererem neprojde
- akadlec
- Člen | 1326
Tak nevím zda jsem něco nepochytil blbě nebo je to žádoucí chování a nevyhovuje jen mě, ale pokud udělám vykreslení komponenty takto:
{control avatar:settings}
jednoduše proto že si typ šablony nadefinuju až v latté a né v php a pak udělám nějaký ajax call uvnitř toho controlu a invaliduju nějaký snippet tam, tak mě to chce vykreslit s default šablonou :( zatím sem to obešel tím že šablonu si ještě natvrdo definuju v presenteru kde vytvářím daný control, ale to se mě moc nelíbí :( rád bych všechny šablonové věci měl v šabloně a mimo phpko.
- David Matějka
- Moderator | 6445
je to „known limitation“. Pri ajaxovem requestu se provadi pouze
invalidovane casti. Jelikoz je invalidovana pouze komponenta a ne sablona, kde
to vykreslujes, zavola se pouze komponenta a beh sablony se ukonci. A jelikoz
se nevi, s jakou metodou render se to vola, tak se zavola vzdy
render
.
Ja se snazim ty parametry komponenty definovat vzdy v presenteru
v createComponent*
Alternativou je obalit vykreslovani snippetem. Imho by mela fungovat
i snippetArea. Pak ale musis invalidovat i ten obalovaci snippet
koukni taky do tohoto tematu, kde se to take zminuje…
Editoval matej21 (17. 12. 2014 17:35)
- David Matějka
- Moderator | 6445
Takže asi holt jiné východisko není než si toto definovat v createComponent je tak?
je to imho nejlepsi reseni. Jeste me napadaji reseni, jako ze by ta komponenta ulozila nekam do js nebo data atributu info, ktera render metoda byla zavolana, to info se pak pripojilo do ajax requestu a komponenta by se dle toho vyrenderovala.