json link s požadavkem na jiný presenter

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

Mám vyhledávání řešené pomocí inputu, po jehož změně JSONem žádám o data, potřeboval bych ale, aby to šlo i z jiných presenterů, nevím ale, jak napsat správně {link}.
vrámci presenteru mi funguje toto: $.getJSON({link hledej!}, {'text': $('#hledej').val()}, function(payload) {...
pokud zkusím $.getJSON({link Presenter:hledej!}, ... tak to skončí chybou Component with name ‚Default‘ does not exist.
zkoušel jsem hledat, ale asi špatně

Editoval peb1 (17. 10. 2012 1:00)

Jirda
Člen | 103
+
0
-

zkus plink

peb1
Člen | 5
+
0
-

to jsem zkusil, píše to to samé, Component with name 'Default' does not exist.
řádek $.getJSON(<?php echo NTemplateHelpers::escapeJs($_presenter->link("Default:hledej!")) ?>, {'text':....
ať zkusím jaký chci presenter
plink mi jinak funguje, ale ne ajaxově (s vykřičníkem)
používám nette pro php 5.2 s prefixy

Editoval peb1 (17. 10. 2012 10:13)

Jan Endel
Člen | 1016
+
0
-

Nelze odkazovat na handle v jiném presenteru, špantný návrh, pokud stejný handle potřebuješ ve více presenterech, přesuň jej do předka.


plink slouží jenom komponentám pro vytvoření odkazu přímo na presenter, v presenterových šablonách platí plink === link.

Editoval pilec (17. 10. 2012 10:55)

peb1
Člen | 5
+
0
-

děkuji za odpověď, nicméně pořád nejsem úspěšný :-(
mám `abstract class BasePresenter extends NPresenter //předek ostatních presenterů
{
public function handleHledej($text)
{
$this->payload->vysledky = list(„a“,„b“,„c“);
$this->terminate();
}
} `
ale do logu mi jde Page not found. Missing template '…\Users\petr\Dropbox\w\test\app\templates\Default\hledej.latte což vypadá, že se neprovede terminate, ale nevím proč

Editoval peb1 (17. 10. 2012 13:10)

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Místo $this->terminate() zavolej $this->sendPayload().