我正在Ember v3.13中与{{did-insert}}
ember-render-modifier一起编写一些Octane样式的组件。但是,当调用绑定到did-insert
的函数时,我得到TypeError: this is undefined
。我在做什么错了?
这是我的组件模板:
<div class="cardhost-monaco-container" {{did-insert this.renderEditor}}></div>
这是组件的JavaScript类:
import Component from '@glimmer/component';
export default class CodeEditor extends Component {
renderEditor(el) {
console.log(this.args.code)
}
}
答案 0 :(得分:6)
在模板中用作操作的方法必须用@action
装饰,以具有正确的this
-上下文:
import Component from '@glimmer/component';
import { action } from '@ember/object';
export default class CodeEditor extends Component {
@action
renderEditor(el) {
console.log(this.args.code)
}
}
动作装饰器将组件上下文绑定到方法。 API docs for action
中对此进行了详细说明。