2015-06-18 18 views
7

Thymeleaf 2.1.4 resmi doc olarak aşağıda for each kullanımını gösterir:Thymeleaf: th kullanılırken dış etiket nasıl hariç tutulur: her?

<tr th:each="prod : ${prods}" th:class="${prodStat.odd}? 'odd'"> 
    <td th:text="${prod.name}">Onions</td> 
    <td th:text="${prod.price}">2.41</td> 
    ... 
</tr> 

Bu durumda mükemmel uyum her tekrarında, bir tane <tr> üretir. Ancak benim durumumda dış etikete ihtiyacım yok (burada, <tr>).


My kullanma durumu, başka hiçbir etiketleri şunlardır bir özyinelemeli şekilde <bookmark> etiketi oluştururken etmektir ve bir <bookmark> etiket isim ve href niteliğini içermesi gerekir.

<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-4.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"> 
<body> 

<div th:fragment="locationBookmark(location)"> 
    <bookmark th:each="map : ${location.subMaps}"> 
     <bookmark th:name="${map.name}" 
        th:href="'#'+${map.id}" th:include=":: locationBookmark(${map})"> 
     </bookmark> 
    </bookmark> 
</div> 
</body> 
</html> 

dahil tarafı:

<bookmark th:include="bookmark : locationBookmark(${rootLocation})"/> 

çok teşekkürler.

+0

etikete örneğini verebilir kullanmak önerirsin? –

+0

@PavelUvarov Benim kullanım durumum eklendi, soruma bakın. – July

+0

Dur tahmin edeyim: n seviyelendirilmiş çocuk etiketleri yapmak ister misiniz? Sanırım çünkü: Yer işareti, html etiketi değil ve içerikli etiketleri kapatmamanız nedeniyle önerilmez. Eğer haklıysam - yinelemeli bir şekilde bir alt şablon oluşturmalı ve kullanmalısınız. Bunu nasıl yapacağınızı söylemek için ThymeLeaf'ta iyi değilim, ama bunun mümkün olduğunu kesinlikle biliyorum - lütfen dokümanlarını dikkatli bir şekilde inceleyin. –

cevap

20

o th:remove="tag" kullanılarak yapılabilir bile seni dış etiket tarafından yakın istemesen sen th:block

<th:block th:each="map : ${location.subMaps}"> 
    <bookmark th:name="${map.name}" 
     th:href="'#'+${map.id}" th:include=":: locationBookmark(${map})"> 
    </bookmark> 
</th:block> 
+0

Sevindim, teşekkürler çok – July

+0

@Xipo - düzeltildi .. tüm Thymeleaf sürümleri için doğru olduğunu umuyorum ama XML temelini oluşturduğundan ... –

0

Bir döngü oluşturmak için DIV etiketini veya başka bir HTML etiketini kullanabilirsiniz. Bu, TR etiketini oluşturmaz. Ancak tablonun doğru bir şekilde görüntülenmesi için TR etiketlerinin içinde TD etiketlerine sahip olmanız gerekir.

<div th:each="prod : ${prods}" th:class="${prodStat.odd}? 'odd'"> 
    <td th:text="${prod.name}">Onions</td> 
    <td th:text="${prod.price}">2.41</td> 
</div> 
+0

İstediğim, adını değiştirmekten ziyade etiketi tamamen kaldırmak. – July

0

Ben sorunu çözmek için nasıl düşündüm, sadece yapacağız dış etiketine th:remove="tag" ekleyin kolaydır.