Mustache / jQuery / javascript - 如何对mustache变量执行方法?

时间:2011-12-10 23:23:09

标签: javascript jquery mustache

我有一个简单的小胡子模板设置,它接受一个对象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}}在其他情况下不是大写。有关最干净最聪明的方法的任何提示吗?

非常感谢。

1 个答案:

答案 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并为大写字母添加帮助程序。