Ako v Nette Ajax vložiť JavaScript premennú ako parameter pre {link}?
- pseudonym
- Člen | 57
Zdravím,
hľadal som, no nenašiel som nikde, ako by sa dalo do ajaxového kódu vložiť
ako parameter javascriptová premenná. Tu https://forum.nette.org/…ic-nepripise#…
sa píše, ako vytvoriť {link}
, a niekde som našiel aj niečo
takéto:
<script>
$.nette.ajax({
url: {link Homepage:default 'parameter' => 'hodnota'},
type: 'get'
});
</script>
Ja by som potreboval spraviť niečo takéto:
<script>
var value = "hodnota";
$.nette.ajax({
url: {link Homepage:default 'parameter' => value},
type: 'get'
});
</script>
Teda načítať ten parameter z javascriptovskej premennej, dá sa niečo také spraviť? Sedím nad tým už dobrú hodinu a stále som na nič neprišiel…
- enumag
- Člen | 2118
@Majkl578: To ale nebude fungovat pokud ten parametr bude součástí URL a nebude za otazníkem. V takovém případě ti nematchne routa a v extrémním případě ti může matchnout nějaká routa kterou nechceš. Samozřejmě se routy dají napsat tak, aby s tím počítaly.
Editoval enumag (19. 1. 2013 1:10)
- Majkl578
- Moderator | 1364
Pravda, to jsem jaksi přehlédl, většinou to totiž používám právě
s parametry za otazníkem.
Pak by asi bylo možné to, co zmiňuješ – napsat si routu, která bude
žrát URL s parametrem v path i v query (základní část by samozřejmě
kvůli diferenciaci rout musela být vždy stejná), kde ta 2. by byla třeba
jednosměrka. U AJAXového requestu by dotaz na nekanonickou URL nevadil.
- JakubJarabica
- Gold Partner | 184
Prečo nenecháte tu URL vygenerovať aj s parametrom Nette? Nie je tu spomenutý aktuálny use case, ale kedže to je parametrizované, ta URL by mohla byť v hrefe alebo data-* atribúte nejakého relevantného HTML tagu a JS by si ju ťahal automaticky. Tak mi to zatiaľ vždy fungovalo.
- enumag
- Člen | 2118
@JAM3SoN: To je sice funkční a mnohdy i použitelné (kromě případů kdy parametr vyplňuje uživatel do inputu), ale generuješ spoustu odkazů z nichž se ve výsledku využije často pouze jeden. Což má tu zásadní vadu, že generování odkazů je drahé (mám pocit že je to v tuto chvíli hlavní zabiják výkonu Nette).