emberjs didRender没有工作

时间:2016-11-01 18:14:01

标签: javascript ember.js ember-cli discourse

我希望在我的页面完全加载(包括所有背景图像)时启动一些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事件时,我的代码工作正常但我无法使用,因为它在加载图像本身之前执行 对此有任何想法或替代方法吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

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

didRender每次都有效。也许您应该更喜欢didInsertElement(仅适用一次)并安排您的功能。

关于:Ember Run