2011-12-10 27 views
6

我有一个简单的小胡子模板设置,需要一个对象player并创建一个列表元素。对胡子中的变量执行JavaScript方法的最佳方法是什么?下面是一些示例代码:Mustache/jQuery/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() }} 

我宁可不改变物体本身,因为我可能想{{位置}}到在其他情况下不是大写。任何提示最干净的最聪明的方式来做到这一点?

非常感谢。

回答

6

小胡子故意非常简单(“无逻辑模板”),所以你可以做的事情不多。一种选择是添加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并添加一个帮助大写的东西。

+0

哦,对,这是关于无逻辑性的一个好处。添加positionUC非常简单。去了,谢谢! – tuddy