link na handle v komponente

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
masterr
Začátečník | 141
+
0
-

Mám komponentu, která má vlastní šablonu. Tu komponentu vytvářím v ArticlePresenteru, který má handleDelete($id){…}.

Volám to takto <a n:href=„delete!, $subNode->id“>smazat</a>, což nemůžu, protože to volá handle v té komponentě a ne v tom presenteru:

error:%20Unknown%20signal%20'delete',%20missing%20handler%20Menu::handledelete%28%29

Jak odkážu na handle přímo v tom presenteru? zkoušel jsem několik možností, ale ani jedna mi nefungovala.

Michal Vyšinský
Člen | 608
+
0
-

Makro plink:

<a href="{plink delete! $subNode->id}">
hAssassin
Člen | 293
+
0
-

Nevim jestli to dobre chapu, takze pro upresneni: mas presenter ArticlePresenter a v nem metodu handleDelete(). Dale v tomhle presenteru vytvaris komponentu Menu, a v jeji sablone chces zavolat metodu handleDelete() toho presenteru ArticlePresenter? Pokud ano tak nejak takto:

<a href="{plink delete!, $subNode->id}">smazat</a>

Cili musis to volat pres plink makro, ktery vola metody rodice, ne sebe. Na druhou stranu to neni uplne ok reseni. Za prvi si nejsem 100% jisty jestli to vubec pujde, za druhy vytvaris zavislost komponenty na presenteru, ktery musi mit vzdy implementovanou metodu handleDelete() jinak ta komponenta nebude 100% funkcni.

Editoval hAssassin (27. 7. 2013 19:07)

masterr
Začátečník | 141
+
0
-

Paráda, tohle přesně jsem potřeboval, a už jsem aspoň pochopil (doufám), rozdili v makrem link a plink.
Link je stejne jako n:href, že j? Do té komponenty si budu muset přidat asi nějakou podmínku a předávat nějaký parametr, protože v té šabloně nebudu chtít vykreslovat

<a href="{plink delete!, $subNode->id}">smazat</a>

pořád a jiné řešení mě nenapadá, nechci tam dávat ten handle protože ta komponenta ho v ostatních případech nebude vůbec potřebovat, jen v tomhle presenteru.

Editoval masterr (28. 7. 2013 12:46)