根据@martypdx 的回答,您只需要将输入关联/绑定到它所代表的属性,但诀窍是当值是布尔值时,为了使输入值与属性值匹配( @martin-kolarik 的意思)是您需要用车把包裹它(就像@martypdx 所做的那样)。
当然,如果您尝试创建可 POST 的表单(因为您希望name
显示为输入名称),这将是不正确的,因为 Ractive 将从上下文/键路径中命名输入。
更新了小提琴——http: //jsfiddle.net/drzaus/9jan1j7q/1/
模板
<table>
{{#each list}}
<tr>
<th>{{name}}</th>
<td>
<label><input type="radio" name="{{checked}}" value="{{true}}">Fixed</label>
<label><input type="radio" name="{{checked}}" value="{{false}}">%</label>
</td>
</tr>
{{/each}}
<pre>{{json(this)}}</pre>
活性
function createEntry() {
return { name: Math.random().toString(36), checked: Math.random() < 0.5 }
}
function createList(n) {
var list = [];
while(n-- >= 0) list.push(createEntry());
return list;
}
var r = new Ractive({
el: document.body,
template: '#template',
data: {
list: createList(5)
,
// debug formatting
json: function(arg) { return JSON.stringify(arg, undefined, 4); }
}
})