2013-05-14 150 views
5

這些天工作我正在與handlerbars.js工作,它似乎很有趣。在那裏我需要你們的幫助。逗號分隔字符串使用handlebars.js

我有以下JSON輸入

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

,我需要寫一個模板來創建以下逗號分隔字符串。

ALCOHOL, DIAGNOSIS 

我能夠使用以下模板逐行打印這些值。

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

你們能幫我解決這個問題嗎?感謝您的幫助

感謝 Keth

回答

1

你可以做到這一點,而不使用寫幫手{{#each}}和測試隱含@index變量:

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

您也可以測試@first和@last(請參閱handlebarsjs docs)。

2

對於這種情況,我將創建一個幫手。

這是我實現

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; 
}); 

和模板

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

事實上,助手是這裏唯一的逗號。你還可以把HTML輔助(跨度,DIV,...)內

+4

取而代之,你可以使用items.join() – 2014-04-28 10:46:16