我有一个简单的小胡子模板设置,它接受一个对象player
并创建一个列表元素。在胡子中对变量执行javascript方法的最佳方法是什么?这是一些示例代码:
var playerTemplate = '<li><span class="player-position">{{ position }}</span><span class="player-name">{{ first_name }} {{ last_name }}</span></li>';
var playerRow = Mustache.to_html(playerTemplate, player);
$('ul#players-list').append(playerRow);
我想做的是:
{{ position.toUpperCase() }}
我宁愿不改变对象本身,因为我可能希望{{position}}在其他情况下不是大写。有关最干净最聪明的方法的任何提示吗?
非常感谢。
答案 0 :(得分:6)
Mustache故意非常简单(“无逻辑模板”),所以你不能做很多事情。一种选择是添加positionUC
属性:
player.positionUC = player.position.toUpperCase();
然后在模板中:
{{positionUC}}
您还可以添加功能:
// Note that render(text) will be HTML though...
player.uc = function(text, render) { return render(text).toUpperCase() };
然后在模板中:
{{#uc}}{{position}}{{/uc}}
也许您可以切换到Handlebars并为大写字母添加帮助程序。