0

我想在我的页面完全加载(包括所有背景图像)时开始一些 css 转换,所以我正在尝试 didRender一个组件的事件,但它从未被调用。这就是我的代码的样子

export default Ember.Component.extend({
    didRender() {
        console.log('did render working');
        var home =$('#main-outlet')[0];
        home.className += " homePage";
        startTimer(5);
    },
    willDestroyElement() {
        console.log("destroying view");
        var home = $('#main-outlet')[0];
        home.className = " wrap";
    }
});

但是,当我使用didInsertElement事件时,我的代码工作正常,但我不能使用它,因为它在加载图像本身之前执行有任何想法或替代方法吗?

4

1 回答 1

1

尝试这个:

didInsertElement() {
  this._super(...arguments);
  Ember.run.scheduleOnce('afterRender', this, function(){
    var home =$('#main-outlet')[0];
    home.className += " homePage";
    startTimer(5);
  });
},

didRender每次重新渲染后都有效。也许你应该更喜欢didInsertElement(只工作一次)并安排你的功能。

关于:灰烬运行

于 2016-11-02T06:35:44.233 回答