当Ember模板改变时,运行jQuery

run jQuery when Ember template changes

本文关键字:运行 jQuery 改变 Ember      更新时间:2023-09-26

我的index.html有一个posts模板和一个post模板。帖子模板是一系列链接,将改变在post模板中显示的帖子。我的一些帖子的内容需要调整一些jQuery。我怎么能运行jQuery代码每次被显示在post模板更改为不同的帖子?

假设您有一条post路由,每次向其路由提供新模型时,都会运行setupController

App.PostRoute = Ember.Route.extend({
  setupController: function(controller, model){
    this._super(controller, model);
    Ember.run.scheduleOnce('afterRender', function(){
      alert('post has changed, and it''s been rendered change away');
    });
  }
});

因为这通常让我感到有点内疚(在路由中添加视图逻辑),你可以在控制器上观察模型(从视图或控制器,每次模型改变时都有类似的逻辑。你可能需要在这条路线上节流,我很确定它会发射两次,使其消失,并将其设置为不同的项目。

App.PostView = Ember.View.extend({
  watchModel: function(){
    Ember.run.scheduleOnce('afterRender', function(){
      alert('color has changed, and it''s been rendered change away');
    });
  }.observes('controller.model')
});