Dokumentacja dotycząca kurzu to tylko okropna, Przeanalizowałem już wszystko, co mogę znaleźć i nie mogę się dowiedzieć, jak to działa.
Mam problem z rzekomymi specjalnymi wartościami $ idx i $ len, które, jeśli poprawnie zgadłem, zwracają bieżący indeks podczas iteracji nad sekcją podobną do tablicy i długości wspomnianej sekcji podobnej do tablicy . Mam warunek @if (kilka rzeczywiscie), które próbuję trenować, aby sformatować szablon, a wartości nie działają tak blisko, jak się da, co prowadzi do następujących pytań:
- Czy $ idx i $ len są prawdziwymi specjalnościami w dust.js?
- Czy możesz ich użyć w @if, a jeśli tak, to w jaki sposób?
- Zakładając, że 1 = prawda, czy bazuje na $ idx od zera?
Oto mój szablon:
{#myArray}
{name}{@sep}, {/sep}{@if cond="('{$idx}' == '{$len} - 2')"}and {/if}{@if cond="('{$idx}' == '{$len} - 1')"}{@if cond="('{$len}' == '1')"} is {:else} are {/if}here.{/if}
{/myArray}
Co to robić "Jake jest tutaj"
- Jeśli jest jedna osoba, renderowanie ciąg
- Jeśli są dwie osoby, wyślij ciąg "Jake i John są tutaj."
- Jeśli są trzy lub więcej osób, wyrenderuj ciąg znaków "Jake, John i Bill są tutaj." (Oczywiście, dodawanie nazw oddzielonych przecinkami, jak jest to konieczne)
Jeśli $ idx i $ len promocji działają w ten sposób, można by pomyśleć, że działa, to szablon będzie robić to, co chcę go, tak blisko, jak tylko mogę Mówię jednak, że nie sądzę, że zaimplementowano $ idx lub $ len (lub oba). Jeśli nie, jak utworzyć szablon, który robi to, co chcę?
wielką komentarz {.} @smfoote – JAiro
Jest mały błąd w skrzypcach ... czekiem jest/muszą sprawdzić, czy === 0, nie 1. W przeciwnym razie, doskonały, dzięki! –
@ RobertC.Barth Dzięki. Zaktualizowałem łącze jsFiddle ze zaktualizowaną logiką. – smfoote