Backbone下划线Checkbox传递值问题

Mar*_*ffe 4 javascript interpolation backbone.js underscore.js

我有一个非常基本的问题,但无法找到解决方案.也许我需要改变自己的思维方式.基本上我在JSON文件中得到一个模型,但我无法弄清楚如何转换truechecked.例如我知道{{-done}}true或者false.

input type="checkbox"  id="chkName"   <%= {{-done}} ? "checked" : "" %>
Run Code Online (Sandbox Code Playgroud)

我看到很多像这样的例子,但对我来说不起作用.是因为我带回了真/假价值的方式.

任何帮助,将不胜感激

Jac*_*ack 13

您的问题是您使用的是错误类型的Underscore.js模板标记,您使用的标记用于插值并使其转义为HTML.

要解释一下,下划线模板中有三种类型的标签,

  1. <%= %>- 插值 - 评估属性的数据并打印它.
  2. <%- %> Escape评估数据并将其打印为HTML转义.
  3. <% %> 评估允许您在模板中执行JavaScript.

此外,在模板中执行JavaScript时,您可以使用该Print方法打印出一些文本(例如属性的结果).

基于上述情况,您需要在模板中运行条件以打印出已检查,如果完成评估为true.因此你可以做的事情如下

<% if(done) { %> 'checked="checked" <% } %>
Run Code Online (Sandbox Code Playgroud)

或者您可以使用该print方法

<% print(done ? 'checked="checked"' : '') %>
Run Code Online (Sandbox Code Playgroud)

编辑:

根据您发布的模板,以下模板应该有效

     <script id="item-template"  type="text/template">   
         <input type="checkbox" id="toggle" <% print( done ?  'checked="checked"' : '') %> /> 
           <span class="text">{{-done}}</span>
           <a id="dele" data-role="button" data-inline="true" data-icon='delete' >Delete</a>
        </script>
Run Code Online (Sandbox Code Playgroud)

这是使用默认ERB样式分隔符的jsBin链接

使用胡子样式分隔符的第二个.