this.sendAction不适用于复选框

时间:2015-09-08 10:31:04

标签: ember.js checkbox components ember-cli

为什么this.sendAction在以下代码中不起作用?我收到了错误

  

未捕获的TypeError:this.sendAction不是函数

//部件/签BOX2 从'余烬'中导入Ember;

export default Ember.Checkbox.extend({
  checkChange: Ember.observer('checked', function () {
    this.sendAction('action', {
        checked: this.get('checked'),
        value: this.get('value')
      });
  })
});

this.send()似乎正在运作

import Ember from 'ember';

export default Ember.Checkbox.extend({
  checkChange: Ember.observer('checked', function () {
    this.send('internalAction', this.get('checked'), this.get('value'));
  }),

  actions: {
    internalAction: function (x, y) {
      console.log('calling internal change with value', x, y);
      this.sendAction('action', {
        checked: x,
        value: y
      });
    }
  }
});

组件使用如下:

{{check-box2 checked=true name="namedBox" value="xyz" action="checkCheckbox"}}

从我可以收集到的东西Ember.Checkbox正在扩展一个组件,所以我们应该能够做到这一点.sendAction http://emberjs.com/api/classes/Ember.Checkbox.html

1 个答案:

答案 0 :(得分:1)

你使用的是什么版本的Ember?由于您使用ember-cli标记了问题,因此我假设它为1.13.8或更低。 Ember.Checkbox在您的案例中Ember.View延长:1.13.10。这在2.0中已经改变,因为他们完全没有意见。

因此,您无法在this.sendAction上使用Ember.View,但您可以使用this.controller.send代替。