Pořadí zpracování maker nerespektuje jejich pořadí v šabloně
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Tomáš Votruba
- Moderator | 1114
Zjistil jsem, že se makra zpracovávají jaksi odzadu. Nejdříve mám
v presenteru přidané makro confirm, poté `current
, ale ve
výsledku jsou zpracovány opačně.
<a n:href="this, detail => A" n:current="active" n:confirm="Opravdu?">
// pořadí maker v šabloně je irelevantní, tedy stejný výstup jako
<a n:href="this, detail => A" n:confirm="Opravdu?" n:current="active">
Tím pádem se mi makro current
dostává před
href
a celou logiku $presenter->isLinkCurrent()
narušuje, jelikož se dosud nevytvoří odkaz, kteří je ověřován.
Řešením by možná bylo na konec vlastních maker přidadt znovu marko
href
, ale to mi přijde divné a navíc netuším, zda by to
stačilo k přepsání původního.
Jak z toho ven?
- vvoody
- Člen | 910
Super by bolo aj spracovanie n:if a n:foreach podla ich poradia.
// podmienka by sa vyhodnotila len raz
<a n:if="$showMenu" n:foreach="$menu as $item">$item->name</a>
// a tu pri kazdej iteracii
<a n:foreach="$menu as $item" n:if="$item->published">$item->name</a>
// alebo co takto 2x n:if v jednom elemente?
<a n:if="$showMenu" n:foreach="$menu as $item" n:if="$item->published">$item->name</a>