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
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
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