答案 0 :(得分:3)
我相信这是因为一旦您第一次点击复选框,isChecked
就会变为true
,它会更新依赖于该变量的每个复选框。
解决此问题的一种方法是在公司模型上设置isChecked
属性:
App.Company = DS.Model.extend({
name: DS.attr('string'),
people: DS.hasMany('person', {async: true}),
isChecked: false
});
您的复选框代码为{{input type="checkbox" checked=company.isChecked}}
。
然后,您可以通过迭代内容轻松获取哪些内容。
Here是我的建议更新的JSbin:
答案 1 :(得分:2)
在您的应用程序的当前状态中,所有复选框都引用相同的变量IndexController.get('isChecked')
和IndexController.set('isChecked', value)
。如果您将该变量的范围从控制器更改为单个Company
模型,它将按预期工作。
<td> {{input type="checkbox" checked=company.isChecked}}</td>
更改后,您可以使用var companies = this.content.filterBy('isChecked')
中的IndexController
来获取已在表单中检查过的公司。