Javascript 余烬-逐个获取多个复选框的状态
我正在开发一个Ember应用程序(版本1.11,旧版本),并在循环中构建了多个复选框,代码如下。 我需要知道一个元素是否在运行中被检查或取消检查 余烬ehbs:Javascript 余烬-逐个获取多个复选框的状态,javascript,html,ember.js,checkbox,Javascript,Html,Ember.js,Checkbox,我正在开发一个Ember应用程序(版本1.11,旧版本),并在循环中构建了多个复选框,代码如下。 我需要知道一个元素是否在运行中被检查或取消检查 余烬ehbs: {{#each item in data}} <label> <input type="checkbox" checked="isChecked" {{action "getData" item on="change"}}/> <span>{{item.type}}</span>
{{#each item in data}}
<label>
<input type="checkbox" checked="isChecked" {{action "getData" item on="change"}}/>
<span>{{item.type}}</span>
</label>
{{/each}}
var component = Ember.Component.extend({
isChecked: true,
actions: {
getData: function(data){
var state = this.get('isChecked');
var type = data.type;
}
}
})
我认为变量的“isChecked”值将为每个复选框保留,但事实并非如此,它只是所有复选框的一个变量。
那么,我如何才能实现这一点,或者检查所有复选框的各个状态,无论是选中还是未选中
从长远来看,我试图在这里获得-,输出,但不想像在这里那样访问和使用DOM。将每个复选框作为组件
<input type="checkbox" checked="isChecked" {{action "getData" item on="change"}}/>
这样,您可以轻松检索每个检查项的值
export default Ember.Component.extend({
tagName: "input",
isChecked: false,
attributeBindings: ['type', 'checked'],
type: 'checkbox',
checked: function() {
return this.get('isChecked');
}.property('isChecked'),
click: function() {
console.log(this.set('checked', this.$().prop('checked')))
}
});
选中将每个复选框作为组件
<input type="checkbox" checked="isChecked" {{action "getData" item on="change"}}/>
这样,您可以轻松检索每个检查项的值
export default Ember.Component.extend({
tagName: "input",
isChecked: false,
attributeBindings: ['type', 'checked'],
type: 'checkbox',
checked: function() {
return this.get('isChecked');
}.property('isChecked'),
click: function() {
console.log(this.set('checked', this.$().prop('checked')))
}
});
检查谢谢,我明天会尝试这个方法,并告诉您是否适合。嘿,我如何将此复选框的单击操作发送到其父项的父项,因为我必须传递检查状态和项目类型等数据。您可以这样做。get('targetObject')。send('actionName',params);这个.get('targetObject')将指向resepective控制器,否则如果您在视图中,您可以使用这个.get('parentView')嗯,targetObject应该是控制器名称,对吗。我试过了,但没用。在这种情况下,我只有一个控制器和嵌套组件。没有视图,我只是在使用组件。谢谢,我明天会尝试这个方法,并让您知道它是否适合。嘿,我如何将此复选框的单击操作发送到其父项的父项,因为我必须传递诸如检查状态和项类型之类的数据。您可以这样做。get('targetObject')。send('actionName',params);这个.get('targetObject')将指向resepective控制器,否则如果您在视图中,您可以使用这个.get('parentView')嗯,targetObject应该是控制器名称,对吗。我试过了,但没用。在这种情况下,我只有一个控制器和嵌套组件。没有视图,我只是在用组件工作。