ビューがレンダリングされるたびにコードを実行したいと思います。私が得ることができる最も近いのは、変更される可能性のあるすべてのプロパティをリッスンし、実行ループで何かを明示的にスケジュールすることです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>
http://emberjs.jsbin.com/wujogejeso/3/edit?html,css,js,output