2013-03-26 25 views
1

感謝您的期待!是否有可能將jQuery模板實例化並緩存爲javascript對象?

背景

我意識到jQuery的模板已預留其他一些閃亮的物體,但我有義務用我的當前項目的框架反正。

我寫一個接受JSON然後呈現適當的表單域動態表單生成器,和我綁定到一個模板一次性控制。例如,代表一個基本的文本字段一個JSON對象將對應於這樣的一個模板:

<!-- BEGIN TEXTBOX TEMPLATE --> 
    <script type="text/html" id="Template_TextBox"> 
     <div class="formField"> 
      <label> 
       ${LabelText} 
       <span class="small">${HelpText}</span> 
      </label> 
      <input type="text" id="${FieldId}" placeholder="${Placeholder}" /> 
      <div class="clear10"></div> 
     </div> 
    </script> 
    <!-- END TEXTBOX TEMPLATE --> 

的FormBuilder類生活在它自己的JavaScript文件,並在整個項目將被使用。

問題

因爲此類將被用於整個項目呈現表單字段,以及因爲這些領域將永遠看起來是一樣的(即文字輸入,選擇列表等),我想只是規範jQuery模板並將它們全部保存在一個位置,而不必將這些模板粘貼到每個具有表單的頁面上。我寧願在我FormBuilder.js文件與形式建設邏輯的休息或至少是有一個HTML頁面的地方,包含了所有的模板,可以通過js文件爲整個網站使用引用不知何故初始化這些模板。

這可能嗎?如果是這樣,怎麼樣?

回答

2

這比我想象的要簡單:

步驟1:將您的模板到一個變量作爲HTML字符串:

var myTemplate = "<h1>${someItem}</h1>"; 

步驟2:高速緩存中的模板

$.template("myTemplate", myTemplate); 

第3步:使用它!

$.tmpl("myTemplate", myJsonData).appendTo("#SomeHtmlElement"); 
相關問題