2015-05-17 60 views
0

我有一个数据灯具适配器说..复选框在灰烬的js

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

});

在我的模板,我想这个模型checkboxes..like结合有两个名字的机型,所以应该是两个复选框以名字作为其标签

这是我的路线

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 
     }} 
}); 

信息的点击有没有办法与复选框模型绑定和检索的复选框已在控制器被选中?

+0

当叫这个buttonHandler?按下按钮或任何复选框? – blessenm

+0

在按下按钮时会调用按钮处理程序@blessenm – kautilya

回答

0
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); 
    }} 
}); 

希望这有助于...

+0

它显示错误---未捕获错误:第10行上的分析错误: ... controller.model as | obj |}} {{输入ty - ---------------------^ 期待CLOSE,CLOSE_UNESCAPED,STRING,INTEGER,BOOLEAN,ID,EQUALS ','DATA','SEP','无效' – kautilya

+0

你在哪个版本的Ember?也许你应该将模板更改为:'{{#each obj in controller.model}}' – Akis

+0

Ya谢谢 这是一个版本问题:P – kautilya

1

我建议使用ObjectProxy想在这个博客帖子描述:http://www.poeticsystems.com/blog/ember-checkboxes-and-you

您可以避免在模型上放置“已检查”属性,并且不得负责尝试保存已检查属性等的序列化程序。

从博客文章

代理型号:

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> 
+0

非常感谢...... – kautilya