发布 Ember 版本 >= 1.13 参见 Kori John Roys' answer。
这适用于 1.13 之前的 Ember 版本
这是 ember 的 {{input type=checkbox}} 助手中的一个错误。
见https://github.com/emberjs/ember.js/issues/5433
我喜欢有替身的想法。 @Kingpin2k 的解决方案有效,但不推荐使用全局视图,并且使用观察者也不是很好。
在链接的 github ember 问题中,rwjblue 建议了一个组件版本:
App.BetterCheckboxComponent = Ember.Component.extend({
attributeBindings: ['type', 'value', 'checked', 'disabled'],
tagName: 'input',
type: 'checkbox',
checked: false,
disabled: false,
_updateElementValue: function() {
this.set('checked', this.$().prop('checked'));
}.on('didInsertElement'),
change: function(event){
this._updateElementValue();
this.sendAction('action', this.get('value'), this.get('checked'));
},
});
模板中的示例用法('checked' 和 'disabled' 是可选的):
{{better-checkbox name=model.name checked=model.checked value=model.value disabled=model.disabled}}