Ember Js 中的复选框

Checkboxes in Ember Js

我有一个数据夹具适配器说..

App.Person.reopenClass({
FIXTURES: [
    {
        id: 1,
        name: 'Name1',
    },
    {
        id:2,
        name:'Name2'
    }
]

});

在我的模板中,我想用复选框绑定这个模型..就像模型中有两个名字,所以应该有两个以名字作为标签的复选框

这是我的路线

App.IndexRoute=Ember.Route.extend({
model:function(){
    return this.store.findAll('person');
}

});

这是控制器单击按钮我想检索有关复选框的信息

App.IndexController=Ember.ArrayController.extend({

actions:{
    buttonHandler:function(){
             //Get Names which are checked/unchecked
        }}
});

有什么方法可以将模型与复选框绑定并检索在控制器中选中了哪些复选框?

App.Person.reopenClass({
 FIXTURES: [
 {
    id: 1,
    name: 'Name1',
    checked: false
 },
 {
    id:2,
    name:'Name2',
    checked: false
 }
]);

您的模板:

{{#each controller.model as |obj|}}
  {{input type="checkbox" name=obj.name checked=obj.checked}}
{{/each}}
<button {{action 'buttonHandler'}}>Get checked</button>

您的控制器:

App.IndexController=Ember.ArrayController.extend({

 actions:{
   buttonHandler:function(){
      var checked_only = this.get('model').filterBy('checked', true);
   }}
});

希望这对您有所帮助...

我建议使用此博客 post 中描述的 ObjectProxy:http://www.poeticsystems.com/blog/ember-checkboxes-and-you

您可以避免在模型上放置 "checked" 属性,并且不得处理试图保存选中的 属性 等的序列化程序。

来自博客post

代理模型:

proxiedModel: Ember.computed.map('model', function(model) {
  return Ember.ObjectProxy.create({
    content: model,
    checked: false
  });
}

模板:

<ul>
{{#each proxiedModel}}
  <li>
    {{input type="checkbox" value=checked}}
    {{name}}
  </li>
{{/each}}
</ul>