我创建了一个组件,它会使正确设置值的复选框呈现。他们也可以响应点击事件,因此在hbs模板中有一个循环,它会呈现如下复选框:
<input class="conditions" type="checkbox" value="{{c.id}}"
{{action "conditionChecked" r preventDefault=false}}
checked={{c.checked}} />{{c.name}}
在组件中,我有actions:
,其中包含conditionChecked钩子。该钩子具有c
参数,这是我从模板中传递的参数,该模板还具有checked
属性,该属性始终等于true
。
如何根据用户的选择(选中/取消选中)访问复选框的实际状态?
编辑:我是Ember.js的新手。如果你能提供一个例子的链接,那就太好了。
答案 0 :(得分:5)
嗯,首先,我建议您使用Ember {{input type="checkbox" checked=someControllerProperty}}
。这会将检查的值作为布尔值绑定到您传递给input
帮助程序checked
属性的任何控制器属性。不需要所有的行动。它是Ember,有双向绑定,所以将一个真值传递给这个帮助器将呈现一个带复选标记的复选框。
如果你必须继续前进(看起来你正在与框架作斗争),在你的conditionChecked
动作中,你可以使用方便的花花公子视图助手jquery选择器函数this.$()
并找到你的复选框。找到后,观察其检查属性,并设置一些值。我得说,你在这里重新发明轮子,因为这正是内置的input type="checkbox"
助手所做的