我对Ember.js相当新,并尝试在我的项目中使用ember-cli-jquery模块(https://www.npmjs.com/package/ember-cli-jquery-ui)中的datepicker组件。
我面临的问题是我需要在datepicker组件加载后运行一些自定义jquery初始化代码。
经过几个小时的研究后,发现了这篇文章http://mavilein.github.io/javascript/2013/08/01/Ember-JS-After-Render-Event/和这个stackoverflow帖子:Using Ember.js, how do I run some JS after a view is rendered?
该帖子描述了使用' didInsertElement'挂钩来运行任何初始化代码 - 但是,由于我使用的是ember-cli-jquery-ui插件,我不知道如何在不更改/修改node_modules / ember-cli-中的代码的情况下执行此操作jQuery的UI /插件/混入/ jqui-widget.js
我查看了ember-cli-jquery-ui的源代码,结果发现上面提到的方法已经被覆盖了。阅读有关emberjs的API文档,似乎可以扩展任何方法,并且可以重新打开类,我不知道该怎么做。 有没有办法可以在我的app.js或index.js中进一步扩展/覆盖该方法?
非常感谢任何帮助。
答案 0 :(得分:2)
您只需扩展组件并调用super方法即可。并将其用作您应用中的新组件
//app/components/my-date-picker.js {{my-date-picker}}
import DatePicker from "path/to/picker"
export default DatePicker.extend({
didInsertElement:function(){
//do things before super
this._super(); //this._super() instead of this.super()
//do things after super
}
})