Rozdíl mezi getParameter v komponentě a v presenteru

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

Ahoj,

posílám si ajaxem přes post (pomocí jQuery) data na handler do komponenty.

Když se je pokusím načíst takto, tak to vrací empty.

<?php
$this->getParameter('nazev');
?>

Když použiji tohle, tak to vrací již správnou hodnotu.

<?php
$this->presenter->getParameter('nazev');
?>

Když jsem si v IDE zkusil prokliknout, tak mi obě ukazují na PresenterComponent.php na stejný řádek.
Může mi někdo vysvětlit, jaký je rozdíl mezi těmito 2 způsoby?

Díky.

Nette 2.1.4.

Šaman
Člen | 2666
+
+2
-

Předpokládám, že té komponentě žádný parametr nenastavuješ. Nastavuješ parametr presenteru a proto si ho ta komponenta musí vyžádat od něj.

duke
Člen | 650
+
+1
-

@tttpapi Pokud chceš, aby ti v komponentě (dejme tomu, že je v presenteru zaregistrovaná pod jménem „foo“) fungovalo toto:

$this->getParameter('nazev');

… musíš si ten parametr poslat jako foo-nazev a nikoli jen nazev.
Zanoření se meze nekladou, takže lze poslat i parametr subkomponentě (např. „bar“) komponenty foo, přes foo-bar-nazev, atd.

Editoval duke (10. 8. 2014 17:55)