0
보기가 렌더링 될 때마다 코드를 실행하고 싶습니다. 내가 얻을 수있는 가장 가까운 것은 변경 될 수있는 모든 속성을 듣고 afterRender
에 대한 실행 루프에서 명시 적으로 일정을 잡는 것이지만 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
불행히도, 삽입 이후에 단 한 번만 계획합니다. 후속 실행 루프는'after' 메소드를 실행하지 않습니다. – theazureshadow