Mar*_*ffe 4 javascript interpolation backbone.js underscore.js
我有一个非常基本的问题,但无法找到解决方案.也许我需要改变自己的思维方式.基本上我在JSON文件中得到一个模型,但我无法弄清楚如何转换true为checked.例如我知道{{-done}}是true或者false.
input type="checkbox" id="chkName" <%= {{-done}} ? "checked" : "" %>
Run Code Online (Sandbox Code Playgroud)
我看到很多像这样的例子,但对我来说不起作用.是因为我带回了真/假价值的方式.
任何帮助,将不胜感激
Jac*_*ack 13
您的问题是您使用的是错误类型的Underscore.js模板标记,您使用的标记用于插值并使其转义为HTML.
要解释一下,下划线模板中有三种类型的标签,
<%= %>- 插值 - 评估属性的数据并打印它.<%- %> Escape评估数据并将其打印为HTML转义.<% %> 评估允许您在模板中执行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链接