Řádek tabulky jako dynamický snippet – nefunkční n:class na řádku
- BigCharlie
- Člen | 283
Napadá někoho, jak elegantně vyřešit tohle? Všechno funguje (tohle je výsek kódu, takže je to obalené dalším snippetem), s jedinou drobnou výjimkou.
<tbody n:foreach="$list->getItems() as $item">
<tr
n:snippet="item-{$item->getId()}"
n:class="$item->isFinished() ? line-through"
>
<td>
<a n:href="finishItem! $item->getId()" class="ajax">Finish</a>
</td>
<td>...</td>
</tr>
</tbody>
Po invalidaci příslušných snippetů se řádek tabulky vykreslí
správně, ale neaktualizuje se třída řádku – protože se posílá pouze
obsah snippetu, tj. všechny <td>
, ale už ne obalující
<tr>
.
Takže vím proč, ale existuje způsob, jak to vyřešit? Není možné použít {snippet}, protože ten se vykresluje do divu, což tabulku rozstřelí…
- Gappa
- Nette Blogger | 208
Co dát n:snippet
na <tbody>
(těch může
v být v tabulce neomezeně) a ty obalit {foreach}
makrem? :)
You may use more than one <tbody> per table as long as they are all consecutive. This lets you divide the rows in large tables into sections, each of which may be separately formatted if so desired.
- BigCharlie
- Člen | 283
@Šaman Asi mi nic jiného nezbyde, nic lepšího jsem nevymyslel. Když na něco takového narazím, obvykle mě někdo mě odkáže do dokumentace, kde najdu „novinku“, starou tři roky, kterou jsem ještě nepotřeboval ;-)
Tak jsem si myslel, jestli třeba něco takového neexistuje i v tomhle případě – i když dokumentaci jsem prohledal jako první…
@Gappa Jak je vidět z ukázky, tbody
už používám
pro nadřazený cyklus, to neklapne…
Díky za tipy.
- BigCharlie
- Člen | 283
@Martk Na tom funguje úplně všechno. @Gappa Pardon, nejspíš si myslel to samé a mně to nedocvaklo…
Díky za popostrčení!
Editoval BigCharlie (28. 7. 2021 12:06)