【问题标题】:Include a jquery.tmpl template for knockout.js?为 knockout.js 包含一个 jquery.tmpl 模板?
【发布时间】:2011-09-21 14:17:40
【问题描述】:

也许是个愚蠢的问题,但我在任何地方都找不到记录在案的答案。

我正在尝试保存一个 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}}

【问题讨论】:

    标签: knockout.js jquery-templates


    【解决方案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>
    

    【讨论】:

    • 很好的链接——我知道这是如何工作的。但这似乎是矫枉过正。有没有办法在没有所有异步 $.get 语法的情况下包含模板?
    • 我想我会屈服于不可避免的事情。我想 AJAXy 的方式真的没那么糟糕。谢谢!
    【解决方案2】:

    将类型更改为 text\html 并再试一次:

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

    【讨论】:

    • my_tmpl.js 文件里面有什么?可以发一下内容吗?
    • 我已将其添加到问题中。
    猜你喜欢
    • 2012-08-15
    • 2021-06-23
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 2018-02-02
    • 1970-01-01
    相关资源
    最近更新 更多