如何绑定到Ember.js中的视图重新渲染?

Jak*_*old 6 javascript ember.js

我有一些jQuery代码需要在呈现视图时运行.对于初始渲染,我可以轻松完成

App.FooView = Ember.View.extend({
  didInsertElement: function() {
    console.log("the view was rendered");
    this.$().someStuff();
  }
});
Run Code Online (Sandbox Code Playgroud)

但由于该someStuff()方法正在操纵视图元素的属性,因此需要在由于数据绑定而重新呈现视图时运行它,因为它将丢失自定义生成的属性.

Aka*_*ash 15

如果您想在某个属性发生变化时重新渲染视图,那么您想要的内容如下所示:

App.FooView = Ember.View.extend({
    myProperty: 'This value might change',
    myPropertyChanged: function() {
        //Do some stuff here (maybe change the template) and call...
        this.rerender();
    }.observes('myProperty')
});
Run Code Online (Sandbox Code Playgroud)

但是,如果您只想在创建视图后重新渲染视图,那么您需要更像这样的东西:

App.FooView = Ember.View.extend({
    init: function() {
        this._super();
        //Do some stuff here (maybe change the template) and call...
        this.rerender();
    }
});
Run Code Online (Sandbox Code Playgroud)

消息来源: http ://emberjs.com/api/classes/Ember.View.html