La documentazione sulla polvere è solo orribile, ho già esaminato tutto ciò che posso trovare e non riesco a capire come dovrebbe funzionare.
Sto riscontrando questo problema con i valori speciali supposti $ idx e $ len, che, se ho indovinato, restituiscono l'indice corrente mentre itera su una sezione di tipo array e la lunghezza di detta sezione di tipo array . Ho una condizione @If (più in realtà) che sto cercando di allenamento per formattare un modello, ed i valori non sono solo lavorando il più vicino posso dire, che mi porta alle seguenti domande:
- Le offerte speciali $ idx e $ len in dust.js?
- Potete usarli in un @if, e se sì, come?
- Supponendo che 1 = true, $ idx sia basato su zero?
Ecco il mio modello:
{#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}
quello che si suppone di fare:
- Se c'è una persona, rendere la stringa "Jake è qui."
- Se ci sono due persone, visualizza la stringa "Jake e John sono qui".
- Se ci sono tre o più persone, rendere la stringa "Jake, John e Bill sono qui." (ovviamente, aggiungendo i nomi separati da virgola come necessario)
Se gli speciali $ idx e $ len funzionano nel modo in cui si penserebbe che funzionino, questo modello farebbe quello che voglio, il più vicino possibile dite, comunque, non penso che siano stati implementati né $ idx o $ len (o entrambi). Se non lo sono, come faccio a creare un modello che fa ciò che voglio?
grande commento {.} @smfoote – JAiro
C'è un piccolo errore nel violino ... il controllo per è/sono necessario verificare se === 0, non 1. Altrimenti, perfetto, grazie! –
@ RobertC.Barth Grazie. Ho aggiornato il collegamento jsFiddle con la logica aggiornata. – smfoote