Odeslání ajax na handle v komponentě

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Miri
Člen | 117
+
0
-

Zdravím, prosím o radu, určitě to bude nějaká banalita.

Snažím se pomoci ajaxu odeslat dotaz.

function loadCategory(id){
        $.get("?do=change", {"id": id}, function (payload) {
            $.nette.success(payload);
        });
}

Pokud mám handleChange v Presenteru, tak se handle načte. Pokud mám ale handleChange v Componentě, tak se handle nenačte (celý script se provádí právě v componentě).

Nevíte kde dělám chybu? Nestačilo by přidat do do něco jako název componenty ?

Předem díky Míra

Tabetha
Člen | 140
+
0
-

nie som si istý teraz, ale handle v komponente by malo byť

?do=nazevKomponenty-change
Miri
Člen | 117
+
0
-

Je zajmavý že jsem to zkoušel a nefungovalo to, teď když jsem to zkusil znova tak to funguje :-) No asi nějaká chybička, ale funguje. díky

Miri
Člen | 117
+
0
-

Ted se pro změnu v handle nechce načíst $id i když vídím ve firebugu že id má hodnotu a odeslalo se. Nevíte proč ?

EDIT: Tak už vím proč, musí se napsat před id také komponenta.

Editoval Miri (3. 5. 2013 15:30)

Tomáš Votruba
Moderator | 1114
+
0
-

Než psát na tvrdo url, kterou chcete zavolat, je lepší použít makro link, které používá stejnou syntax jako n:href.

$.get("{link change!}", ...

Toto použito v komponentě zavolá metodu v komponentě, v presenteru pak metodu v presenteru, a není potřeba nad ničím přemýšlet.

akadlec
Člen | 1326
+
0
-

samozřejmě za předpokladu že ten JS se generuje také v komponentě a není v externím JS souboru.