Latte chyba v ifset n:href

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

Ahoj, tento kód latte VŽDY vypíše href=„…“ a to by tedy rozhodně nemělo!

<a {ifset $xxxx} n:href="cokoliv"{/ifset}>test</a>

Editoval pawouk (1. 1. 2013 19:37)

Jan Tvrdík
Nette guru | 2565
+
+1
-

To je IMO vlastnost, takhle to prostě nejde kombinovat. Použij makro {link}.

pawouk
Člen | 172
+
0
-

Samořejmě že s link to funguje, neptal jsem se jak to vyřešit, ale tohle je podle mě chyba.

enumag
Člen | 2118
+
0
-

@Jan Tvrdík: +1

Filip Procházka
Moderator | 4668
+
+2
-

Já si naopak myslím, že by se měly zakázat párová makra v tagu (nikoliv v attributech) a nechat tam pouze n:makra.

enumag
Člen | 2118
+
0
-

@Filip Procházka: Osobně bych to nezakazoval, ale jinak máš pravdu že uvedený případ by asi bylo lepší řešit n:attr makrem.

Editoval enumag (1. 1. 2013 21:14)

Nox
Člen | 378
+
0
-

A je nějaký důvod, proč by toto nemělo být podporováno? Pokud by tam bylo href, bude to fungovat. Pokud by tam bylo {makro}, bude to fungovat.

Že zrovna tady je výjimka je neintuitivní a navíc nezdokumentované…
(nebo jsem to tedy nikde nenašel)

Filip Procházka
Moderator | 4668
+
0
-

@enumag: To bylo trošku s nadsázkou. Není ani trošku reálné, aby se něco takového zakázalo :)

Jde o to, jak Latte zpracovává tu šablonu. A zrovna tohle je případ, který prostě zpracovat neumí, kvůli tomu, jakým způsobem převádí šablonu na strukturu maker a tagů. Kdyby se tohle mělo podporovat, musel by se tam určitě dělat nějaký hnusný hack. Nehledě na to, že už tento zápis je značně odpudivý.

Majkl578
Moderator | 1364
+
0
-

@Jan Tvrdík: Vlastnost je, když něco nefunguje dle očekávání? :)
Pokud to fungovat nemá dle očekávání, nemělo by to ani jít zkompilovat. Momentálně je to IMO bug, protože to zkompilovat jde, ale nefunguje to tak, jak se to tváří.

Filip Procházka napsal(a):

Já si naopak myslím, že by se měly zakázat párová makra v tagu (nikoliv v attributech) a nechat tam pouze n:makra.

A jak bys podmíněně přidal nějaký atribut (ne jeho hodnotu)?

enumag
Člen | 2118
+
0
-

@Majkl578: n:attr makro to umí.

zimmi
Člen | 94
+
0
-

Potřeboval bych na základě existence proměnné buď přidat, nebo nepřidat do <tr> atribut class s určitou hodnotou, lze toho dosáhnout pomocí nějakého n:makra?

enumag
Člen | 2118
+
0
-
<tr n:class="isset($var) ? trida">
zimmi
Člen | 94
+
0
-

Děkuji.