余烬操作阻止设置复选框值
Ember action preventing checkbox value from setting
在我的余烬应用程序中,我想通过循环动态呈现一组复选框,如果选中了 2 个复选框,则禁用任何未选中的复选框。
当选中具有更改操作的复选框时,我在将值设置为"true"时遇到问题。对于以下示例,选中该复选框时不会设置checkbox.value
。
{{ input type="checkbox" disabled=checkbox.disabled checked=checkbox.value change=(action "disableCheckboxes" val)}} {{checkbox.label}}
但是,当我删除该操作时,它确实会设置:
{{ input type="checkbox" disabled=checkbox.disabled checked=checkbox.value}} {{checkbox.label}}
JSFiddle 上的完整示例
如何在运行操作的同时设置值?或者当已经选择了 2 个复选框时,禁用未选中复选框的更好方法是什么?
好吧,首先你可以使用一个动作。 看看这个余烬。
但我建议直接将您的值绑定到目标对象。看这里。
这个想法基本上是包装你的数组并计算包装中的 isDisabled:
boxes:[{id:1,value:true},{id:2},{id:3}],
boxArr: Ember.computed('boxes.@each.value', {
get() {
let disableOthers = Ember.get(this, 'boxes').filterBy('value', true).get('length') >= 2;
return Ember.get(this, 'boxes').map(origin => {
return {
origin,
disabled: disableOthers && !origin.value,
};
});
}
}),
然后,您可以在模板中使用它:
{{#each boxArr as |box|}}
{{input type="checkbox" disabled=box.disabled checked=box.origin.value}} {{box.origin.id}}
{{/each}}
第三种存档方法是使用帮助程序。您可以只有一个计算属性,说明是否应禁用所有带有value=false
的复选框,然后使用and
和not
帮助程序来设置disabled=(and disableFalseCheckboxes (not box.value)
。为此查看余烬真相助手。
相关文章:
- JQuery Datatables将复选框设置为选中
- 我无法将 MVC 复选框设置为在 jquery 中选中
- 在 Zkoss 中选中的复选框设置为禁用(真),但我希望复选框和勾选的可见性保持不变
- jQuery:根据另一个复选框设置选择框的值
- 在放入表单数据之前,将HTML复选框设置为字符串
- 为复选框设置 Cookie
- 如何为单选按钮和复选框设置禁用/只读功能
- 将“已创建”复选框设置为选中不起作用
- 如何为动态添加的复选框设置动态启用/禁用
- 将复选框设置为使用jQuery选中
- 将第一个复选框设置为选中,其他复选框从客户端的复选框列表中禁用
- 为不确定复选框设置自定义初始值只有在单击后才能工作
- 使用angularjs将复选框设置为选中时导致的错误
- Jquery验证多个复选框设置错误位置
- 如何在单击“取消”时将复选框设置为未选中?
- 当php选中复选框设置时,调用JS函数
- 将前2行输入字段的复选框设置为选中
- 选中复选框设置属性,否则删除属性
- Jquery ui slider:基于复选框设置步长
- AngularJS-当Value为true时,将复选框设置为选中