我有一些jQuery代码需要在呈现视图时运行.对于初始渲染,我可以轻松完成
App.FooView = Ember.View.extend({ didInsertElement: function() { console.log("the view was rendered"); this.$().someStuff(); } });
但是由于someStuff()方法正在操纵视图元素的属性,因此我需要在由于数据绑定而重新呈现视图时运行它,因为它将丢失自定义生成的属性.
解决方法
如果您想在某个属性发生变化时重新渲染视图,那么您想要的内容如下所示:
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') });
但是,如果您只想在创建视图后重新渲染视图,那么您需要更像这样的东西:
App.FooView = Ember.View.extend({ init: function() { this._super(); //Do some stuff here (maybe change the template) and call... this.rerender(); } });