javascript - Backbone 下划线复选框传递值问题

标签 javascript backbone.js underscore.js interpolation

我有一个非常基本的问题,但找不到解决方案。也许我需要改变我的思维方式。基本上我在 JSON 文件中得到了一个模型,但我不知道如何将 true 转换为 checked。例如,我知道 {{-done}}truefalse

input type="checkbox"  id="chkName"   <%= {{-done}} ? "checked" : "" %>

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

任何帮助将不胜感激

最佳答案

您的问题是您使用的是 错误 类型的 Underscore.js 模板标签,您使用的标签是用于插入一个值并对其进行 HTML 转义。

解释一下,下划线内有三种标签templates ,

  1. <%= %> - Interpolate - 评估属性的数据并打印出来。
  2. <%- %> Escape 评估数据并打印 HTML 转义。
  3. <% %> Evaluate 允许您在模板中执行 JavaScript。

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

根据上述情况,您需要在模板中运行一个条件,以打印出 checked if done 评估为真。因此,您可以执行以下操作

<% if(done) { %> 'checked="checked" <% } %>

或者您可以使用 print方法

<% print(done ? 'checked="checked"' : '') %>

编辑:

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

     <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>

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

这是一个 second one使用 mustache 样式分隔符。

关于javascript - Backbone 下划线复选框传递值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020497/

相关文章:

javascript - Destroy() 无法正常工作

javascript - 如何过滤/修改 Backbone 集合本身,而不是获取新数组

javascript - 如何使用backbonejs从文本框中读取数据

javascript - 如何使用 underscore.js 查找字符串是否为空?

underscore.js - 将分隔的字符串拆分为对象

javascript - 如何使用 Javascript 变量作为 CSS 宽度的值?

javascript - 如何从 PHP 文件 Jquery 中获取值?

javascript - each() 函数未在 this.collection 上定义

javascript - Ajax 只被调用一次

javascript - IIFE 和窗口对象?