2011-12-10 22 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