我有一个非常基本的问题,但找不到解决方案。也许我需要改变我的思维方式。基本上我在 JSON 文件中得到了一个模型,但我不知道如何将 true
转换为 checked
。例如,我知道 {{-done}}
是 true
或 false
。
input type="checkbox" id="chkName" <%= {{-done}} ? "checked" : "" %>
我看到很多这样的例子,但对我不起作用。是不是因为我带回真/假值的方式。
任何帮助将不胜感激
最佳答案
您的问题是您使用的是 错误 类型的 Underscore.js 模板标签,您使用的标签是用于插入一个值并对其进行 HTML 转义。
解释一下,下划线内有三种标签templates ,
-
<%= %>
- Interpolate - 评估属性的数据并打印出来。 -
<%- %>
Escape 评估数据并打印 HTML 转义。 -
<% %>
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/