有没有类似`onload`的Ember事件
Is there any Ember event similar to `onload`
我想在我的 Ember 应用程序中加载所有内容(例如图像)后执行 JavaScript。
我已经尝试使用 didInsertElement()
和 didRender()
挂钩,但看起来它们不会等待加载背景图像。
我的组件的代码片段如下所示:
export default Ember.Component.extend({
didInsertElement() {
this._super(...arguments);
Ember.run.scheduleOnce('afterRender', this, function() {
var home =$('#main-outlet')[0];
home.className += " homePage";
startTimer(5);
});
},
});
对此有任何解决方案或替代方法吗?
Ember 没有相当于 onload
.
的事件
但是,关于另一种方法,您可以利用 Ember 对 jQuery 的别名,结合组件中的 didInsertElement
挂钩,来实现执行顺序你正在寻找的。试试这个:
export default Ember.Component.extend({
didInsertElement() {
Ember.$(window).on('load', this.executeCssAnimations);
},
executeCssAnimations() {
// your CSS and animation logic would go here
Ember.$('.big-background')
.text('NOW READY FOR CSS and ANIMATION UPDATES.')
.css('color', 'yellow');
},
willDestroyElement(...args) {
this._super(...args);
Ember.$(window).off('load', 'window', this.executeCssAnimations);
},
});
willDestroyElement
挂钩也已包括在内,以显示从 window
.
中正确拆卸和删除 load
事件侦听器
我创建了一个 Ember Twiddle example 来为您演示。
我想在我的 Ember 应用程序中加载所有内容(例如图像)后执行 JavaScript。
我已经尝试使用 didInsertElement()
和 didRender()
挂钩,但看起来它们不会等待加载背景图像。
我的组件的代码片段如下所示:
export default Ember.Component.extend({
didInsertElement() {
this._super(...arguments);
Ember.run.scheduleOnce('afterRender', this, function() {
var home =$('#main-outlet')[0];
home.className += " homePage";
startTimer(5);
});
},
});
对此有任何解决方案或替代方法吗?
Ember 没有相当于 onload
.
但是,关于另一种方法,您可以利用 Ember 对 jQuery 的别名,结合组件中的 didInsertElement
挂钩,来实现执行顺序你正在寻找的。试试这个:
export default Ember.Component.extend({
didInsertElement() {
Ember.$(window).on('load', this.executeCssAnimations);
},
executeCssAnimations() {
// your CSS and animation logic would go here
Ember.$('.big-background')
.text('NOW READY FOR CSS and ANIMATION UPDATES.')
.css('color', 'yellow');
},
willDestroyElement(...args) {
this._super(...args);
Ember.$(window).off('load', 'window', this.executeCssAnimations);
},
});
willDestroyElement
挂钩也已包括在内,以显示从 window
.
load
事件侦听器
我创建了一个 Ember Twiddle example 来为您演示。