Nette 2.1 v componentě nefunguje makro {p/link}

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

V šabloně komponenty mi nefungují makra {link} a {plink}. Proměnná $presenter je taky nastavená na NULL.
Pokud chci odkázat na na nějaký presenter musím jít přes $control->parent->link(„Presenter:action“). Nejde o nějaký bug?

enumag
Člen | 2118
+
0
-

Nejspíše předáváš šabloně nějaké proměnné dříve než je komponenta připojena k presenteru.

nat
Člen | 12
+
0
-

Bohužel, šabloně se nepředávají žádné proměnné, tím to nebude. Zatím je v ní statický text (v budoucnu ale nebude..). Jak jsem psal výše $presenter === NULL k presenteru se dostanu přes $control->parent.

A tento kod prostě nefunguje

{plink "Sluzby:danovaEvidence"}
Fatal Error: Call to a member function link() on a non-object
File: .../libs/Nette/Utils/LimitedScope.php(42) : eval()'d code:25

Tento kod už ano

{$control->parent->link('Sluzby:danovaEvidence')}
David Matějka
Moderator | 6445
+
0
-

a nenastavujes treba sablonu pro tu komponentu uz v konstruktoru?

enumag
Člen | 2118
+
0
-

Ok možná ne parametry, ale na 90% nějak manipuluješ se šablonou dříve než bys měl… Zkrátka metoda createTemplate se volá příliš brzy když ještě komponenta neví o presenteru takže ho do šablony nepředá.

Editoval enumag (9. 2. 2014 17:50)

nat
Člen | 12
+
0
-

matej21 napsal(a):

a nenastavujes treba sablonu pro tu komponentu uz v konstruktoru?

jo nastavuju… bylo to tím.. :-/ Díky!

Zrovna tohle jsem teď měnil, protože jsem si přidal automatické generování cesty k šabloně podle názvu komonenty.