2013-05-14 9 views
5

W dzisiejszych czasach pracuję z handlerbars.js i wydaje mi się to całkiem interesujące. Tam potrzebuję małej pomocy od was.Przecinek Przeciągnij za pomocą handlebars.js

mam następujący wejście json

"ALERTS": [ 
    { 
     "alert_description": "ALCOHOL", 
    }, 
    { 
     "alert_description": "DIAGNOSIS", 
    } 
] 

i muszę napisać szablon do tworzenia następujący ciąg oddzielonych przecinkami.

ALCOHOL, DIAGNOSIS 

Mogłem wydrukować te wartości, używając linii po linii, korzystając z poniższego szablonu.

<div> 
    <div> 
{{#each this}} 
    <span>{{alert_description}}</span> 
{{/each}} 
</div> 
</div> 

Czy możecie pomóc mi rozwiązać ten problem? Dziękujemy za pomoc

Dzięki Keth

Odpowiedz

1

Można to zrobić bez pisania pomocnika przy użyciu {{#each}} i testowanie niejawny @index zmiennej:

{{#each this}} 
    {{#if @index}}, {{/if}} 
    <span>{{alert_description}}</span> 
{{/each}} 

Możesz także przetestować @first i @last (patrz handlebarsjs docs).

2

Dla tego rodzaju scenariusza, będę tworzyć pomocnika.

Oto moja realizacja

Handlebars.registerHelper('commalist', function(items, options) { 
    var out = ''; 

    for(var i=0, l=items.length; i<l; i++) { 
    out = out + options.fn(items[i]) + (i!==(l-1) ? ",":""); 
    } 
    return out; 
}); 

i szablon

<div> 
    <div> 
    {{#commalist this}} 
     <span>{{alert_description}}</span> 
    {{/commalist}} 
    </div> 
</div> 

W rzeczywistości pomocnik jest tu tylko dla przecinkiem. Nadal można umieścić html wewnątrz pomocnika (przęsła, div, ...)

+4

Zamiast pętli możesz użyć items.join() –

Powiązane problemy