我在backbone.js rails应用程序中使用了把手,我有一个布尔字段,我填充了一个复选框。
当我加载编辑页面时,表单中填充了服务器JSON中的内容,如
{id:3,user:'test',checkbox:1}
现在在我的车把表格中,我想表明复选框是1.
< input type="checkbox" name="checkbox" value="1" {{#if checkbox}} {{bindAttr checkbox checked="isSelected"}}{{/if}} >
但这不会返回选中的复选框。我真的很想说if checkbox==1
,但我不知道如何用把手做到这一点。
Anysuggestions ??
答案 0 :(得分:9)
你通常会做的是在'模型'中使用布尔值。
{
isChecked: true
}
然后
<input type="checkbox" {{bindAttr checked="isChecked"}}>
如果Boolean为true,则呈现checked
属性,如果Boolean为false,则省略该属性。因此,如果isChecked
为真,那么Handlebars将输出
<input type="checkbox" checked>
如果isChecked
是假的,我们会得到
<input type="checkbox">
我们想要的是什么!
答案 1 :(得分:8)
我还写了一个帮手来做这件事。它不使用backbone.js,因此可能是某些选择:
Handlebars.registerHelper('checked', function(currentValue) {
return currentValue == '1' ? ' checked="checked"' : '';
});
用法示例:
<input type="checkbox" name="cbxExample" id="cbxExample" {{checked cbxExample}}/>
如果提供的JSON为:
,则勾选复选框{"cbxExample" : "1"}
导致:
<input type="checkbox" name="cbxExample" id="cbxExample" checked="checked" />
[我的第一篇文章 - 希望有用!]
答案 2 :(得分:-7)
我最终使用了一个把手助手。