2

我正在使用 {{bind-attr}} 帮助器将类名绑定到元素以用于转换(在 css 中),并且在“didInsertElement”上设置控制器中的值似乎会使转换短路,甚至在我的 CSS 中延迟以防止它。但是,转换的最终状态被渲染了。

我已经尝试过 Ember.run.scheduleOnce('afterRender') 这似乎可以解决问题,但从“清晰”的角度来看,这并不是我想要的。

是否有一个钩子(或在 uggo setTimeout 调用之外创建一个钩子)在元素被插入 dom 并有效完成渲染后触发?

4

2 回答 2

1

你必须使用Ember.run.scheduleOnce('afterRender'). 但是您可以通过执行以下操作更优雅地做到这一点。现在你所有的视图都有 afterRenderEvent 的钩子。从清晰的角度来看,这应该足够了,对吧?

Ember.View.reopen({
  didInsertElement : function(){
    this._super();
    Ember.run.scheduleOnce('afterRender', this, this.afterRenderEvent);
  },
  afterRenderEvent : function(){
    // implement this hook in your own subclasses and run your jQuery logic there
  }
});

PS:此片段摘自我博客上的一篇文章,我在其中更详细地解释了该方法。

于 2013-08-30T08:16:21.247 回答
0

派对有点晚了,但我们需要 ember-paper 中的 css 动画,所以我创建了一个 ember 插件,它可以只用 css 转换组件(就像 ng-animate 和 React Animation)。

https://github.com/peec/ember-css-transitions

于 2015-08-15T07:19:48.757 回答