我的主干模型具有 bool 值(isRegistered)。当我渲染 View 时,我想根据 bool 值的true/false值选择一个复选框。

我目前的工作是这样的:

<input id="isRegisteredCheckbox" checked="<%= isRegistered ? 'checked': ''"/>

这是行不通的,因为根据W3C规范,选中的属性需要完全删除才能取消选中一个复选框。

我如何使用 Backbone 模板来做到这一点?

最佳答案

您不需要checked=部分。如果需要检查,只需在标签中打印出已检查的内容即可。

编辑

既然我们已经确定仅打印“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));

模板:
<input type="checkbox" {{ registered }}>

使用此方法,无需在模板中使用困惑的条件。

10-04 18:07