Есть ли какое-либо событие Ember, похожее на `onload`?
Я хочу выполнить JavaScript, когда весь контент (например, изображения) был загружен в мое приложение Ember.
Я уже пытался использовать 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);
});
},
});
Любое решение или альтернативный подход для этого?
1 ответ
У 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
крюк был также включен, чтобы показать надлежащий демонтаж и удаление load
слушатель событий из window
,
Я создал пример Ember Twiddle, чтобы продемонстрировать это для вас.