我正在尝试使用小胡子模板来呈现非常简单的表单,但是,其中一个表单有一组单选按钮.我无法弄清楚如何在渲染表单时选择正确的单选按钮.
这是一件很简单的事情吗?我只是遗漏了一些东西,或者胡子的"无逻辑"方面是否真的阻止我像单选按钮一样基本的东西?
我的数据看起来像这样:
data = { gender: 'female' }
<form>
<label><input type="radio" name="gender" value="male"> Male</label>
<label><input type="radio" name="gender" value="female"> Female</label>
</form>
Run Code Online (Sandbox Code Playgroud)
您可以使用 lambda 来完成此操作:
var data = {
gender: 'female',
wrapped: function () {
return function (text) {
return text.replace('value="' + this.gender+'"', 'value="' + this.gender+'" checked');
}
}
};
<form>
{{#wrapped}}
<label><input type="radio" name="gender" value="male"> Male</label>
<label><input type="radio" name="gender" value="female"> Female</label>
{{/wrapped}}
</form>
Run Code Online (Sandbox Code Playgroud)
如果您遇到任何问题,请查看我使用的完整示例。
更新:
Justin Hileman 向我展示了另一种方法:
<form>
<label><input type="radio" name="gender" value="male"{{#maleIsDefault}} checked{{/maleIsDefault}}>
Male</label>
<label><input type="radio" name="gender" value="female"{{#femaleIsDefault}} checked{{/femaleIsDefault}}> Female</label>
</form>
var data = {
gender: 'female',
maleIsDefault: function() {
return this.gender == 'male';
},
femaleIsDefault: function() {
return this.gender == 'female';
}
};
Run Code Online (Sandbox Code Playgroud)
完整的例子在这里。