当ember完成DOM更新时做一些事情

aba*_*ter 5 javascript ember.js

当ember绑定已经同步并且DOM再次更新时,我想做一些事情.

我尝试使用操作绑定模型的函数的回调,在执行回调时不更新DOM.

我已经在模型上直接尝试了观察者,在执行观察者时DOM不会更新.

我已经尝试使用绑定的观察者,在执行观察者时DOM不会更新.

例如

App.view = Ember.View.extend({
    modelBinding: 'App.model',
    modelChanged : function() {
        window.scrollTo(0, document.body.scrollHeight);
    }.observes('model'),

    getMore: function(event) {
        App.set('model', "somethingnew");
    }
});
Run Code Online (Sandbox Code Playgroud)

当我触发"gotMore"时,我更新模型,当模型更新并且其更改已经呈现时,我想向下滚动.

在我试过的方法中,没有一个能够获得新的scrollHeight.在这些事件发生后几毫秒设置.

这是关于jsFiddle的一个例子:http: //jsfiddle.net/kcjzw/15/

ato*_*irk 7

这里记录了执行此操作的正确方法:

http://emberjs.com/api/classes/Ember.run.html#method_next

modelChanged : function() {
  Ember.run.scheduleOnce('afterRender', this, function() {
    window.scrollTo(0, document.body.scrollHeight);
    $('body').append('New scroll height: '+document.body.scrollHeight);
  });
}.observes('content')
Run Code Online (Sandbox Code Playgroud)