我正在使用Ember组件的didRender()
钩子来实现一些需要在加载DOM后运行的javascript。例如:
didRender() {
var signaturePad = new SignaturePad($("#sigElement"));
signaturePad.clear();
}
这很好用。但是,我需要从同一组件中的操作中访问signaturePad
变量,以使按钮正常工作。如:
actions: {
clearSignature: function() {
signaturePad.clear();
}
}
不幸的是,似乎我在组件的didRender()
钩子中定义的变量没有传递给actions
。
如何从同一组件中的操作中访问此变量?
答案 0 :(得分:2)
如果你想在加载DOM之后做一些事情,你应该使用didInsertElement
hook。
创建变量并不会将其设置为在其他情况下使用的属性。
请改变如下:
didInsertElement() {
var signaturePad = new SignaturePad($("#sigElement"));
signaturePad.clear();
this.set('signaturePad', signaturePad);
}
actions: {
clearSignature: function() {
this.get('signaturePad').clear();
}
}