2012-03-11 10 views
3

月ドロップダウンと月ドロップダウンがあるjQueryテンプレートをビルドする必要があります。 {@ each}の構文でオプションを構築できるように、1〜31の値を持つJSONモデルアイテムのそれぞれに1か月リストと1日のリストを含める必要があるのは残念です。jqueryテンプレートにforループがありますか

私はあなたが別の答えに{{各}}の内部で動的配列を追加することができる方法を見てきました:私はおそらくちょうど31に値を1とその内部配列を定義しかし、たとえそれができ Can I declare local/temp variables within a jQuery template?

少し冗長です。 jQueryテンプレートでforループを実行するより良い方法はありますか?

日付の特定のケースで反復する日付オブジェクトがあるかもしれませんが、日付以外に関連するループ使用のケースはどうでしょうか?

外部グローバル変数を使用せずに、テンプレート本体に完全に定義されたループを作成します。グローバル変数を使うと、{{each}}を簡単に使うことができました。

答えて

13

jqueryテンプレートに別のタグを追加する方法を見つけました。これはforタグの定義です。 jQueryとjquery.tmpl.jsにあなたのスクリプト参照の後にこれを追加:ロエルクラマースによってtextareaタグのサンプルについて

(function ($) { 
$.extend(jQuery.tmpl.tag, { 
    "for": { 
     _default: {$2: "var i=1;i<=1;i++"}, 
     open: 'for ($2){', 
     close: '};' 
    } 
}); 
})(jQuery); 

ありがとう: http://blog.sterkwebwerk.nl/2010/12/15/custom-jquery-template-tags-1/

はまた、定義のためjquery.tmplソースを表示それぞれのタグの多くは助けになりました。

デフォルトはforループで、反復回数は1回です。ここでは、それを使用するテンプレート本体を定義する方法である:ここでは

<script id="TestTemplate" type="text/x-jQuery-tmpl"> 
    Day:<br/> 
    <select name="DayOfMonth"> 
     {{for(i=1;i<=31;i++)}} 
     <option value="${i}">${i}</option> 
     {{/for }} 
    </select> 
</script>​ 

が行動でそれを見るためにjsFiddleページです: http://jsfiddle.net/mjlang/qvzdV/

+0

A率いて、そのバイオリンはもはや動作していないようです。 –

+0

jQueryテンプレートが廃止されているため、フィディッドが動作しないことがあります。この回答は、この時点で歴史的な目的のためにここにあります。 jsRenderのような別のテンプレートエンジンを使用します。 –

関連する問題