为什么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
答案 0 :(得分:1)
你使用的是什么版本的Ember?由于您使用ember-cli
标记了问题,因此我假设它为1.13.8或更低。 Ember.Checkbox
在您的案例中Ember.View
延长:1.13.10。这在2.0中已经改变,因为他们完全没有意见。
因此,您无法在this.sendAction
上使用Ember.View
,但您可以使用this.controller.send
代替。