是否有任何优雅的方法来完成由字符分隔的值列表(逗号,正斜杠等)?
Rob,Jon,Dan,Paul
我正在使用Mustache语法的ICanHaz JavaScript实现。
<script id="nameTemplate" type="text/html">
<span>Name {{#names}}{{.}} {{/names}}</span>
</script>
但这会产生错误的结果
Rob,Jon,Dan,Paul,
答案 0 :(得分:1)
AFAIK没有像这样的功能,所以你可以这样做:
模板:
<script id="nameTemplate" type="text/html">
<span>Name
{{#names}}
{{name}}{{^last}},{{/last}}
{{/names}}</span>
</script>
脚本:
var namesAsArrayOfObjects = {
"names": [
{"name": "Rob"},
{"name": "John"},
{"name": "Dan", "last": true}
]
};
var user = ich.nameTemplate(namesAsArrayOfObjects);
$('#output').append(user);
结果在这里:http://jsfiddle.net/alexpetrov/VS2jQ/
另一种解决方案,根据我的口味不太优雅:
<script id="nameTemplate" type="text/html">
<span>Name
{{#names}}{{#trimed}}{{.}}{{/trimed}}{{/names}}
</span>
</script>
<div id="output"></div>
var namesAsArrayOfStrings = {
"_counter": 1,
"names": ['Rob', 'John', 'Alice'],
"trimed": function() {
return function(text, render) {
var text = render(text) +
(namesAsArrayOfStrings._counter != namesAsArrayOfStrings.names.length ? "," : "");
namesAsArrayOfStrings._counter++;
return text;
}
}
};
var user = ich.nameTemplate(namesAsArrayOfStrings);
$('#output').append(user);