我有一个非常基本的问题,但看不到解决方案。也许我需要改变我的思维方式。基本上我在 JSON 文件中得到了一个模型,但我不知道如何转换true
为checked
. 例如,我知道{{-done}}
要么是true
要么false
。
input type="checkbox" id="chkName" <%= {{-done}} ? "checked" : "" %>
我看到很多这样的例子,但对我不起作用。是不是因为我带回了真/假值的方式。
任何帮助,将不胜感激
我有一个非常基本的问题,但看不到解决方案。也许我需要改变我的思维方式。基本上我在 JSON 文件中得到了一个模型,但我不知道如何转换true
为checked
. 例如,我知道{{-done}}
要么是true
要么false
。
input type="checkbox" id="chkName" <%= {{-done}} ? "checked" : "" %>
我看到很多这样的例子,但对我不起作用。是不是因为我带回了真/假值的方式。
任何帮助,将不胜感激
您的问题是您使用了错误类型的 Underscore.js 模板标签,您使用的标签用于插入一个值并将其 HTML 转义。
解释一下,下划线模板中有三种类型的标签,
<%= %>
-插值- 评估属性的数据并打印它。<%- %>
Escape评估数据并以 HTML 转义形式打印。<% %>
评估允许您在模板中执行 JavaScript。此外,在模板中执行 JavaScript 时,您可以使用该Print
方法打印出一些文本(例如属性的结果)。
根据您的情况,您需要在模板中运行条件以打印检查是否完成评估为真。因此,您可以执行以下操作
<% 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>
这是使用默认 ERB 样式分隔符的jsBin的链接
这是第二个使用胡子样式分隔符的。
I tought I had it, but its simply always going in to the first condition. This is what I have. As you can see I'm printing out Done on the next line, which is showing true or false. Your code makes sense, just does not want to play ball. Would it be due to the script declaration?
<div id="items">
<script id="item-template" type="text/template">
<input type="checkbox" id="toggle" <% print( done ? '' : checked) %>
<span class="text">{{-done}}</span>
<a id="dele" data-role="button" data-inline="true" data-icon='delete' >Delete</a>
</script>
</div>