2011-09-21 165 views
0

也許是愚蠢的問題,但我無法在任何地方找到記錄的答案。包含knockout.js的jquery.tmpl模板?

我想保存一個jquery tmpl模板,並將其作爲腳本包含它。似乎這應該工作:

<script src="my_tmpl.js" type="text/javascript" id="myTemplate"></script> 

但沒有運氣。我究竟做錯了什麼?

只是爲了完整起見,這裏的一種結合我做了淘汰賽:

<div id="myTemplatedBox" data-bind="template: 'myTemplate'"> 

編輯:下面是的my_tmpl.js內容非常簡化版本。當它保存在主html文檔中時它工作正常。

<div class="headerText">{{html header_text}}</div> 
    {{each(i,v) answer_array}} 
     <div class="questionText"><input type="radio" name="Q${i}" value="${i+1}">{{html v}}</input></div> 
    {{/each}} 

回答

1

看看http://encosia.com/jquery-templates-composite-rendering-and-remote-loading/

看起來你還是需要腳本代碼在你的模板文件。

<script id="invoiceTemplate" type="x-jquery-tmpl"> 
    <div class="questionBox"> 
     <div class="headerText">{{html header_text}}</div> 
     {{each(i,v) answer_array}} 
      <div class="questionText"><input type="radio" name="Q${i}" value="${i+1}">{{html v}}</input></div> 
     {{/each}} 
    </div> 
</script> 
+0

良好的鏈接 - 我看到這可以工作。但它似乎是矯枉過正。有沒有什麼辦法可以包含模板而不使用所有異步$ .get語法? – Abe

+0

我想我會屈服於不可避免的。我想AJAXy的方式真的不是那麼糟糕。謝謝! – Abe

0

類型更改爲文本\ HTML,並給它另一個去:

<script src="my_tmpl.js" type="text/html" id="myTemplate"></script> 
+0

hm。仍然沒有運氣。 – Abe

+0

你的my_tmpl.js文件裏面有什麼?你能發佈內容嗎? –

+0

我已將它添加到問題中。 – Abe