2011-09-21 100 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