Předání dat z javascriptu do latte
- Marek Bartoš
- Nette Blogger | 1284
Odkaz si musíš vygenerovat už na serveru, uložit ho můžeš například do data atributu společně s ID modalu. Při zobrazování modalu zavoláš už ten vygenerovaný odkaz.
Editoval Marek Bartoš (11. 10. 2021 22:27)
- dakur
- Člen | 493
Z JS se do Latte dostat nedá. Generování probíhá takto:
Nette (PHP) generuje HTML z Latte šablony, nakonec výsledné HTML odešle zpět na klienta (do prohlížeče). Prohlížeč přelouská HTML a pokud je v něm nějaký JS, tak ho spustí.
Musíš tedy mít ten link už v tom vygenerovaném HTML. Osvědčené je to, jak píše Marek, přes data atribut. Např.:
<div data-show-modal-link="{link showModal! id}">...</div>
Z toho se vygeneruje a do prohlížeče pošle něco podobného:
<div id="modal" data-show-modal-link="https://example.com/presenter/action?do=showModal&id=1">...</div>
A v JS to vytáhneš:
document.addEventListener('DOMContentLoaded', function () { // toto potřeba jen pokud spoustíš skript dříve než je dotazovaný element (#modal)
const link = document.getElementById('modal').dataset.showModalLink;
// ...
})