rea*_*ers 9 backbone.js underscore.js
我的骨干模型有一个布尔值(isRegistered).当我渲染视图时,我希望根据布尔值的true/false值选中或取消选中复选框.
我目前的努力看起来像这样:
<input id="isRegisteredCheckbox" checked="<%= isRegistered ? 'checked': ''"/>
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为根据W3C规范,需要完全删除checked属性以取消选中复选框.
我如何使用骨干模板?
您可以使用测试来封闭 checked='checked'
<input id="isRegisteredCheckbox" <% if (isRegistered) { %>checked="checked"<% } %> />
Run Code Online (Sandbox Code Playgroud)
你不需要这个checked=部分.如果需要检查,只需在标签中打印出来.
现在我们已经确定只打印"已检查"是有效的html,您可以尝试简单:
渲染:
var registered;
var tmpl = _.template(your template);
isRegistered ? registered = 'checked' : registered = '';
var tmpl_data = _.extend(this.model.toJSON(), {registered: registered}); // or whatever values you need to add
$(this.el).html(tmpl(tmpl_data));
Run Code Online (Sandbox Code Playgroud)
模板:
<input type="checkbox" {{ registered }}>
Run Code Online (Sandbox Code Playgroud)
使用此方法无需在模板中使用混乱的条件.
| 归档时间: |
|
| 查看次数: |
17171 次 |
| 最近记录: |