为什么Ember.run afterRender没有为CSS过渡工作?

时间:2013-09-16 22:32:08

标签: ember.js css-transitions

根据我的理解,使用CSS转换的一种方法是使用Ember.run.scheduleOnce('afterRender')

但是,对我来说,如果没有添加超时,它就无法正常工作。这是在Ember 1.0.0

View = Em.View.extend({
  didInsertElement: function() {
    Ember.run.scheduleOnce('afterRender', this, 'animateModalOpen');
  },

  animateModalOpen: function() {
    // this does not work - modal gets styles from class "in" with no transition
    $('.modal').addClass('in');

    // this does work, the transition is fired
      setTimeout(function() {
        $('.modal').addClass('in');
      }, 1);
    }
  },
});

这是过去曾经工作过的东西吗?或者我已经错过了什么?

1 个答案:

答案 0 :(得分:9)

Ember.run.next对我来说非常适合这类事情。

didInsertElement: function() {
  Ember.run.next(this, this.animateModalOpen);
}