Premenná v šablone je undefined keď narazí na snippet

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

Zdravím,
vie mi prosím vás niekto povedať, čo sa deje v tomto kóde:

{var $level = '1'}

{block content}

	{dump $level}
	{snippet categoriesList}
		{dump $level}
	{/snippet}

{/block}

Prvý dump sa normálne vypíše, ale druhý vyhodí výnimku „Undefined variable: level“. Keď odstránim to makro {snippet}, tak to funguje. Akonáhle je tam {snippet} tak je $level undefined. A nejde tu o ajaxový request. Je to normálny render šablony. Je možné, že to má niečo s upgradom na Nette 2.4, lebo projekt takto fungoval(myslím si) na verzii 2.2
Som z toho dosť zmetený.

Díky.

Editoval Čamo (1. 12. 2016 13:24)

David Matějka
Moderator | 6445
+
+4
-

Tohle je ocekavane chovani, ve snippetech nejsou videt promenne definovane mimo snippet, pouze ty, ktere jsou predane sablone pri renderovani. deje se tak proto, ze pri invalidaci snippetu se provadi pouze kod uvnitr snippetu a nedoslo by k vytvoreni te promenne

Čamo
Člen | 798
+
0
-

To dáva zmysel. Aj to zdá sa funguje. Díky.