2017-02-27 78 views
1

是否有一个复选框的属性绑定到模型中的一个属性的方式,例如:如何设置使用Ember 2.x从模型选中的复选框属性?

我有这个简单的模型的路线上:

export default Ember.Route.extend({ 
    model:function(params) { 
     return { "isAdmin": true } 
    } 
}); 

,并且模板我想显示当isAdmin为真时检查的复选框:

<input id="adminControll" name="isAdmin" type="checkbox" onchange={{action "toggleAdmin" model.isAdmin}} /> 

有关如何实现此目的的任何想法?

回答

0

由于灰烬1.13.3你可以做到以下几点:

<input type="checkbox" checked={{model.isAdmin}} 
     onchange={{action "toggleAdmin" value="target.checked"}}> 

控制器(或部件):

actions: { 
    toggleAdmin(value) { 
     this.set('model.isAdmin', value); 
    // Do something useful 
    } 
} 

这里是Ember Twiddle

0

您可以使用{{input}}帮手,

{{input type="checkbox" name="isEmberized" checked=isEmberized}} 

并绑定checked属性model.isAdmin

{{input type="checkbox" name="isEmberized" checked=model.isAdmin}} 

工作示例是here(通过ember-twiddle.com)。

你可以阅读更多有关如何在以下链接使用input(复选框在这种情况下)灰烬帮手,

http://emberjs.com/api/classes/Ember.Templates.helpers.html#toc_checkbox

如果您需要处理读到这里的行动,

https://guides.emberjs.com/v2.11.0/templates/input-helpers/#toc_actions

如果您确实不想使用input帮助程序,请为inputHTML元素i设置value属性而不是传递给行动。

让我知道,如果以上信息。解决你的问题。

+0

这个工作,但现在我的动作不。检查更改时是否有办法触发该操作? – DeividKamui

+0

你需要处理什么操作?它用于什么? –

+0

当选中的值发生变化时我需要重新计算一些值,如果我的用户是管理员,则查询ajax服务以获取当前的折扣率。 – DeividKamui

相关问题