Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 余烬-逐个获取多个复选框的状态_Javascript_Html_Ember.js_Checkbox - Fatal编程技术网

Javascript 余烬-逐个获取多个复选框的状态

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>

我正在开发一个Ember应用程序(版本1.11,旧版本),并在循环中构建了多个复选框,代码如下。 我需要知道一个元素是否在运行中被检查或取消检查

余烬ehbs

{{#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应该是控制器名称,对吗。我试过了,但没用。在这种情况下,我只有一个控制器和嵌套组件。没有视图,我只是在用组件工作。