2016-04-23 14 views
0

underscorejsを使用してテンプレートをレンダリングしたいです。アンダースコア:よりわかりやすいリストレンダリングをそれぞれまたは

このコード

var _ = require('underscore'); 
var tpl = 'Hello <% _.each(names, function(name) { %><%= name %>, <% }); %>!'; 
var compiled = _.template(tpl); 
var data = { 
    names: ['Marissa','Bill','Larry','Steve'] 
}; 
var result = compiled(data); 

は生成します。

=> "Hello Marissa, Bill, Larry, Steve, !" 

まあ、結果はスマートに見えません。

私は「」出力、その後、nameが最後の項目でない場合に要求する必要があり、私は結果を得ることができます。名前は最後のものの一つ前であれば、私は照会することができた場合は

"Hello Marissa, Bill, Larry, Steve!" 

、私は得ることができます:

"Hello Marissa, Bill, Larry and Steve!" 

私はこの結果をどのように得ることができますか?

答えて

0

私はそれを解決:

=> "Hello Marissa, Bill, Larry and Steve!" 

=> "Hello Marissa, Bill, Larry, Steve!" 

Hello <% var n=names.length-2; _.each(names, function(name,i) { %><%= name %><% if(i<n) %>, <% if(i==n) %> and <% }); %>! 

結果で

Hello <% var n=names.length-1; _.each(names, function(name,i) { %><%= name %><% if(i<n) %>, <% }); %>! 

結果

関連する問題