如何在 Ember.js 中获取复选框状态?

How to get checkbox state in Ember.js?

我创建了一个 component 来渲染正确设置值的复选框。他们还可以响应点击事件,所以在 hbs 模板中有一个循环来呈现复选框:

<input class="conditions" type="checkbox" value="{{c.id}}" 
  {{action "conditionChecked" r preventDefault=false}} 
  checked={{c.checked}} />{{c.name}}

在组件中,我有 actions: 包含 conditionChecked 挂钩。钩子有 c 参数,这是我从模板传递的参数,它也有 checked 属性,总是等于 true.

如何根据用户的选择 (checked/unchecked) 访问复选框的实际状态?

编辑:我是 Ember.js 的新手。如果你能提供一个 link 的例子,那就太好了。

嗯,首先我会推荐你​​使用Ember{{input type="checkbox" checked=someControllerProperty}}。这会将选中的值作为布尔值绑定到您传递给 input 助手的 checked 属性的任何控制器 属性。不需要所有的动作。它是 Ember,有两种绑定方式,因此将真值传递给此助手将呈现一个带有复选标记的复选框。

如果你必须沿着你要走的路走下去(看起来你在与框架作斗争),在你的 conditionChecked 操作中,你可以使用方便的花花公子视图助手 jquery 选择器函数 this.$() 并找到您的复选框。找到后,观察其选中的 属性,并设置一些值。我得说,你在这里重新发明了轮子,因为这正是内置 input type="checkbox" 助手所做的