Aramadan sonra sorularım için doğru cevabı bulamadım. Gidonlarla görüntülemek istediğim keyfi bir ağaç derinliğim var. Gidonlarda (https://jsfiddle.net/adamboduch/5yt6M/) tekrarlayan şablonlama için iyi bir keman örneği var ama ağacın sapını alamıyorum. @ index sadece her bir öğenin konumunu söyler.Özyinelemeli Handlebars.js Şablonu. Derinliği nasıl belirleyebilirim?
Benim Kısmi Şablon:
<script id="teamspeak_channel_recursive" type="text/x-handlebars-template">
{{#each childChannel}}
<tr class="viewer-table-row">
<td class="viewer-table-cell">
<span></span>
<span class="viewer-label">{{name}}</span>
<span></span>
</td>
</tr>
{{#if childChannel}}
{{> teamspeak_channel_recursive}}
{{/if}}
{{/each}}
</script>
ben niyet için sol css marjı veya css sınıfı aracılığıyla deph dayalı isim istiyorum. Ayrıca parametreler kullanmayı denedim, ancak bir sayı hesaplamak veya herhangi bir matematik yapmak için izin verilmiyor. Ayrıca bir matematik yardımcısı da yardımcı olmadı. Şablondaki Javascript, bildiğim kadarıyla yasaklandı. Kısacası
<script id="teamspeak_channel_recursive" type="text/x-handlebars-template">
{{#each childChannel}}
<tr class="viewer-table-row">
<td class="viewer-table-cell">
<span></span>
<span class="viewer-label">{{name}}</span>
<span></span>
</td>
</tr>
{{#if childChannel}}
{{> teamspeak_channel_recursive deph=({{../deph}}+1) }} <- dosen't work only statc values or the context itself is working
{{/if}}
{{/each}}
</script>
sıkıştım ve sıralı bir listesini kullanmak ve TableCell için ekran modunu ayarlamak dışındaki çıkış yolu bulmuyorum. Ama istediğim bu değil. Ayrıca, yinelemeli düzey eklemek için bağlam üzerinde yinelemek de güzel bir seçenek değildir.
Modeli (tamamlanmamış):
type": "channel",
"childChannel":
[
{
"type": "channel",
"childChannel":
[
{
"type": "channel",
"childChannel": null,
"childClient": null,
"name": "AFK Area"
}
],
"childClient": null,
"name": "WoW/SWToR/GuildWars2 hype"
},
{
"type": "channel",
"childChannel":
[
{
"type": "channel",
"childChannel": null,
"childClient": null,
"name": "Rumidler (AFK)"
}
],
"childClient": null,
"name": "FPS CS:GO Hype"
}
],
"childClient": null,
"name": "Hall of Games"
ama bana yardımcı doğru yolda. Teşekkürler! Bir blok yardımcısı olarak yardımcıyı değiştirdim, böylece şablondaki html öğelerini ve çıktılarını seçebiliyorum. Modelle hala sıkı sıkıya bağlı. Birisi bitmiş yardımcımı buraya yollayabilirim diye sorarsa. –