AJAX, jquery a snippet v komponentě
- Pavel Lokvenc
- Člen | 7
Zdravím,
moc nevím, jak přesně uvést nadpis pro tohle téma. Jde o to, že mám
napsanou komponentu jakéhosi gridu po zobrazování dat v DB. Ta má v sobě
stránkování (AJAX), editaci záznamu (odkaz na příslušný presenter) a
mazání řádku (AJAX). Teďka přichází na řadu malý háček. Mám
šablonu gridu rozdělenou na tři snippety, jeden pro grid, druhy pro
stránkování a třetí pro zobrazování flash zpráv komponenty, jejíž div
se dá schovat pomocí jquery. A tady je právě kámen úrazu. Flash zpráva
se má zavírat pomocí jquery. Skript ale nefunguje, pokud snippet se zprávama
invaliduji. Nějak moc nevím, jak do toho. JS mám rozhozený do více
souborů, tak si nejsem jistý, jestli mu to nevadí, to ale pravděpodobně asi
ne. Díky moc za odpověď.
- Vojtěch Dobeš
- Gold Partner | 1316
Problém bude v tom, že při invalidaci snippetu se z flash zpráv ztratí nabindovaný callback na skrytí. Po úspěšném Ajaxovém požadavku bude třeba tohle navázání znovu provést.
- Pavel Lokvenc
- Člen | 7
Jasný :):):) Díky moc. A jestli se můžu ještě zeptat, jde to udělat nějak elegantněji než tak, že dám tomu <a> kus JS přímo do parametru onclick?
- Vojtěch Dobeš
- Gold Partner | 1316
Určitě :). Neznám konkrétní JS, ale to bindování bych si zapouzdřil do nějaké funkce. A pak ji volal vždy po úspěšném requestu. S nette.ajax.js (promo) to půjde snadno :):
$.nette.ext('closeFlashes', {
success: function () {
bindClosingOfFlashMessage();
}
});