我想在每次呈现视图时运行代码。我能得到的最接近的方法是监听每个可能更改的属性,并在运行循环中明确安排某些内容afterRender
,但我希望只有一个生命周期钩子,例如afterRender
. 属性方法变得脆弱,因为您必须根据可能影响渲染的内容来更新属性列表。
控制器:
App.IndexController = Ember.Controller.extend({
count: 0,
actions: {
add: function() {
var count = this.get('count');
count += 1;
this.set('count', count);
}
}
});
看法:
App.IndexView = Ember.View.extend({
changed: function() {
Ember.run.scheduleOnce('afterRender', this.after);
}.observes('controller.count'),
after: function() {
console.log('after render', this.$('span').text());
}
});
模板:
<button {{action "add"}}>add</button> <span>{{count}}</span>