2013/05/31

[JavaScript][Underscore.js]_.templateメソッド

JavaScriptでPHPのsmartyのようにテンプレートを使ってqueryを展開することができないのかと模索していたところ。

Underscore.jsのtemplateメソッドを使えばいけそうです。

<div id="container"><ul><ul></div>
<script>
var list = "<% _.each(people, function(name,i) { %><li><%= name %></li><% }); %>";
var ret = _.template(
    list, 
    {people : ['moe', 'curly', 'larry']}
);
$('#container > ul').append(ret);
</script>
templateメソッドで返ってきた値をdomにappendする感じですねー。

確かに便利だが、若干、醜い気がする。
特に、list変数の部分が。
<% %>
はJavaScriptのコードでそれ以外がHTMLなんですよね。
文字列で閉じ込めている以上しょうがないのですが、「"」で囲むのがなー。ちょっとうざい。

もう一歩進んで便利に使えないだろうか?

0 コメント:

コメントを投稿