2011-12-10 8 views
6

私はオブジェクトplayerを受け取り、リスト要素を作成する単純な口ひげテンプレートセットアップを持っています。口ひげの変数のjavascriptメソッドを実行する最良の方法は何ですか?ここではいくつかのサンプルコードです:口ひげ/ 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

Mustacheは意図的に非常に単純です(「Logic-less templates」)ので、できることはたくさんありません。

player.positionUC = player.position.toUpperCase(); 

して、テンプレートに:

{{positionUC}} 

あなたはまた、機能を追加することができます:テンプレートで

// Note that render(text) will be HTML though... 
player.uc = function(text, render) { return render(text).toUpperCase() }; 

、その後を:1つのオプションは、positionUCプロパティを追加することです

{{#uc}}{{position}}{{/uc}} 

おそらくHandlebarsに切り替えて、大文字のものにヘルパーを追加することができます。

+0

ああ、それは論理的に不満な点についての良い点だ。 positionUCを追加する作業はすばやく簡単でした。ありがとう! – tuddy

関連する問題