我想使用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
不是最后一项,然后输出&#34;,&#34;,所以我可以得到结果:
"Hello Marissa, Bill, Larry, Steve!"
如果我可以查询姓名是否是前一个名字,我可以访问:
"Hello Marissa, Bill, Larry and Steve!"
我怎样才能得到这个结果?
答案 0 :(得分:0)
我解决了它:
Hello <% var n=names.length-1; _.each(names, function(name,i) { %><%= name %><% if(i<n) %>, <% }); %>!
结果
=> "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 Marissa, Bill, Larry and Steve!"