每次渲染或渲染时触发jquery事件

时间:2013-08-08 11:57:05

标签: javascript jquery triggers ember.js bind

我需要在每个ember.js视图渲染后运行一个函数。我最初的想法是在页面准备好后运行我的函数,但任何视图更改都不受我的函数中DOM操作的影响。有没有一种方法可以在每次渲染视图或重新渲染视图时绑定到事件(或引起触发器)?

1 个答案:

答案 0 :(得分:5)

您可以挂钩didInsertElement并执行所有DOM操作:

例如:

App.MyView = Ember.View.extend({
  didInsertElement: function() {
    Ember.run.scheduleOnce('afterRender', this, 'processChildElements');
  },

  processChildElements: function() {
    // do here any DOM manipulatins
  }
});

编辑以回应您的上次评论

如果您不希望基于每个视图挂钩didInsertElement,您可以随时深入了解框架和reopen Ember.View类,并挂钩{ {1}}函数,然后调用render以便视图可以完成它的工作,甚至拦截你放置自定义代码的this._super(buffer);

renderBuffer

有关示例,请参阅here(查看控制台)。

希望它有所帮助。