Akce na při změně persistentního parametru
- akadlec
- Člen | 1326
Moje téma vedle nějak bez reakce tak se pokusím to trošku zobecnit.
Je nějak možné zpracovat akci při změně persistentního parametru komponenty? Konkrétně mě jde o stránkovadlo. Když v komponentě vytvořím paginator co má persistentní parametr „page“ tak se krásně předává v url. Ale problém je jak aplikaci donutit aby na tento parametr provedla i nějakou akci? Jednoduše, kliknu na link stránkovadla a provede se změna stránky a zároveň mě to zpracuje nějaký „handle“
Je zde nějaká taková možnost?
- akadlec
- Člen | 1326
Jop, to je důvod proč to tak chci, invalidace snippetů. V textu mám prostě výpis dat které potřebuju odstránkovat ale musím invalidovat jen ten konkrétní snippet a né ty okolo.
Jen si tak nějak nedovedu představit jak detekovat že request bude ajaxem a přidat tam signál. Leda snad tak že by to tam bylo nahardkoděné což je zase něco čemu se chcu vyhnout.
Ono tam kde to mám použito je to ovládano ajaxem s pomocí nette.ajax.js ale potlačil jsem si tam history extension, takže se mě ta kliknutá url nepropaguje do příkazové řádky, takže takto dlouhou url uvidí jen někdo kdo ví kám na tvar url kouknout.
- xificurk
- Člen | 121
Nejpřímočařejší by bylo vygenerovat to „ošklivé“ URL se signálem
do nějakého data atributu. A pak si rozšířit nette.ajax.js, aby se před
odesláním requestu podívalo, jestli existuje tento atribut a použilo jeho
obsah pro AJAX request.
Pokud je tohle řešení z nějakého důvodu nemožné, tak to budeš muset
nahackovat nějak na míru přes rozšíření nette.ajax.js
- peter.z
- Člen | 37
Ak to mas v komponente (Control), tak potom preco neurobis nieco taketo?
public function attached($presenter)
{
parent::attached($presenter);
if ($presenter->isAjax()) {
$this->invalidateControl('obsah');
}
}
To ti invaliduje snippet obsah pri kazdom AJAX requeste. V render metode uz budes pracovat s premennymi paginatoru. Odkazovat budes na to zmenou page parametru.
Alebo sa mylim a nebude to tak fungovat vobec? :D