Komponenta s argumenty dynamicky v textu
- Jiří Nápravník
- Člen | 710
Chci mít v článcích možnost mít dynamicky vkládané šablony, používám toto v BasePresenteru, inspirovane zde na fóru od někoho:
funguje to tak, že v článku pak mohu mít např. |||survey ‚1‘||| a zavolá mi to továrnu pro kompoentnu survey a nastaví argument 1. Vše v pořádku, pokud je to komponenta pro vykreslení apod. Problém je, když tam chci mít odkazy. Musím si ten argument s id předávat ve všech odkazech, protože jinak jak se klikne, tak zmizí informace o tom, o jakou anketu jde. Je nějaké lepší řešení, abych nemusel ten argument vzdy predavat?
- Jiří Nápravník
- Člen | 710
Nemám, ale když jsem to zkoušel tak mi to s ním taky nechtělo fungovat, ale to jsem zkoušel s formulářem.
- David Matějka
- Moderator | 6445
resil bych to asi pomoci multiplieru, tedy ze bys tu survey mel definovanou jako
a v tom filtru bys zjistil, jestli se jedna o multiplier proved tam:
- Jiří Nápravník
- Člen | 710
@DavidMatějka Tohle ale řeší spíše předání toho id ne? Je pravda, že to je lepší než ten setter, co mám já, ono to ale takhle snadno ani nejde, ty argumenty nejsou jenom id, ona je to casto i nejaka zmet typu survey 1##left##3OO a pak si to rozberu a udelam z toho id, zatekani, sirka. neni to moc pekne, ale nic lepsiho jsem zatim nevymyslel.
Nicméně mě jde hlavně o to, aby se pak ten argument předal i po překreslení snippetu, odeslání formuláře. Tak nějak mě napadá, že to asi nepůjde, prootže ten argument a vlastně celá ta komponenta se poprvé řeší až na úrovni šablony (render metodě), tak to tam asi nijak jinak nedostanu. Zatím to předávám vše v odkazu či v hidden polích, ale bylo by lepší to řešit nějak lépe. Je to nějak řešitelné?
- David Matějka
- Moderator | 6445
@JiříNápravník ano, resi to jen ID. Ale to bude vetsinou asi jedine, co potrebujes pro ten signal – ty dalsi argumenty jsou dulezite jen pro render. Takze bude stacit nejak sikovne zjistit ID, ktere posles do multiplieru a zbytek posles jako nyni.
- Jiří Nápravník
- Člen | 710
Ok, to ID v tomhle pripade jde, ale pokud to chci trochu univerzalneji, tak asi bude lepsi to setArguments, jak mam. Protože tam volam treba i komponentu, kdy potrebuji seznam clanku, takze tam predavam argument s nekolika idcky.
Nicméně fungují vůbec v komponentách persistentí parametry. Že když sio tam pošlu to id, tak se mi předá automaticky a nemusím to řešit? Já když ten persistentní parametr v nastavím přes setter, tak se mi do odkazů vůbec nepředá. Dokonce jsem zkusil defaultní nastavení
a id mi to tam nepředvyplní, jak bych čekal. Dělám něo špatně?