Odkaz na handle v javascriptu

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

Ahoj píšu komponentu (potomek Control) pro zobrazení jQplot grafu, jehož data by se měla tahat přes Ajax.

Problematická část komponenty vypadá takto:

var link{$code|noescape} = {plink $dataLink $dataLinkAttr}

// Chart
$.jqplot('plot{$code|noescape}', link{$code|noescape}, {
  dataRenderer: ajaxDataRenderer{$code|noescape},
  axes: axesCfg{$code|noescape}
});

kde se snažím předat proměnnou komponenty $dataLink, která obsahuje název handle metody ve vybraném presenteru, např: „Plots:loadData“

Uvedená metoda pak v PlotsPresenter vypadá následovně:

public function handleLoadData() {

  // Select $result from database
  ...

  $this->sendResponse(new Responses\JsonResponse(array($result)));
}

Problém je, že obdržím hlášku:

"error: Unable to pass parameters to action 'Plots:loadData', missing corresponding method."

Pokud udělám

var link{$code|noescape} = {link $dataLink! $dataLinkAttr}
...

Obdržím hlášku

syntax error, unexpected '!'
akadlec
Člen | 1326
+
0
-

Imho Plots:loadData je volání action actionLoadData() v presenteru PlotsPresenter proto ti to nejde. Musíš ten vykříčník přidat už do té proměnné $dataLink

microcz
Člen | 62
+
0
-

vykřičník jsem přidal, děkuji, ale chyba je teď jiná Component with name 'Plots' does not exist. …ono to chce hledat tu handle metodu jenom v té mé komponentě „PlotControl“, je vůbec možné, abych se v komponentě odkazoval na jiný presenter?

Editoval microcz (13. 5. 2014 20:27)

akadlec
Člen | 1326
+
0
-

ne, handle můžeš volat jen v rámci aktuálního presenteru.

Jiří Nápravník
Člen | 710
+
0
-

na jiný presenter z komponenty se dá odkazovat přes {plink}, tím ale samozřejmě nezaovláš handleNeco, ale jen actionNeco