this.sendAction 不适用于复选框

this.sendAction is not working for checkbox

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

Uncaught TypeError: this.sendAction is not a function

//components/check-box2 从 'ember' 导入 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 正在扩展一个组件,因此我们应该能够做到 this.sendAction http://emberjs.com/api/classes/Ember.Checkbox.html

您使用的 Ember 是什么版本?由于您用 ember-cli 标记了问题,我认为它是 1.13.8 或更低。 Ember.Checkbox 在您的情况下扩展了 Ember.View1.13.10。这在 2.0 中已更改,因为他们完全摆脱了视图。

所以你不能在 Ember.View 上使用 this.sendAction,但你可以使用 this.controller.send