EmberJS 在不同上下文中使用组件
EmberJS Using Component in Different Context
我正在尝试使用 EmberJS 中的另一个库 bootstrap-switch
。
我用 .on('didInsertElement')
添加了以下内容:
$(toggleTag).on('switchChange.bootstrapSwitch', function(event, state) {
this.sendAction('updateAction', state);
});
但是,调用此事件时,this
的上下文将为 html 元素 toggleTag
return object
。相反,我需要为 this
.
访问 component
处理此问题的推荐方法是什么?
在 ES6 中使用 fat arrows 并继承父级的上下文(如果您使用 ember-cli,推荐这样做):
$(toggleTag).on('switchChange.bootstrapSwitch', (event, state) => {
this.sendAction('updateAction', state);
});
在 ES5 中要么使用 bind 来修复函数上下文:
$(toggleTag).on('switchChange.bootstrapSwitch', function(event, state){
this.sendAction('updateAction', state);
}.bind(this));
或保存上下文:
var that = this;
$(toggleTag).on('switchChange.bootstrapSwitch', function(event, state){
that.sendAction('updateAction', state);
});
我正在尝试使用 EmberJS 中的另一个库 bootstrap-switch
。
我用 .on('didInsertElement')
添加了以下内容:
$(toggleTag).on('switchChange.bootstrapSwitch', function(event, state) {
this.sendAction('updateAction', state);
});
但是,调用此事件时,this
的上下文将为 html 元素 toggleTag
return object
。相反,我需要为 this
.
component
处理此问题的推荐方法是什么?
在 ES6 中使用 fat arrows 并继承父级的上下文(如果您使用 ember-cli,推荐这样做):
$(toggleTag).on('switchChange.bootstrapSwitch', (event, state) => {
this.sendAction('updateAction', state);
});
在 ES5 中要么使用 bind 来修复函数上下文:
$(toggleTag).on('switchChange.bootstrapSwitch', function(event, state){
this.sendAction('updateAction', state);
}.bind(this));
或保存上下文:
var that = this;
$(toggleTag).on('switchChange.bootstrapSwitch', function(event, state){
that.sendAction('updateAction', state);
});