scroll
コンテンツが変更されたときに起動される関数を作成できます。http://jsfiddle.net/pangratz666/zZ5Ccを参照してください。したがって、基本的には、単一のメッセージを保持するビューからすべてのメッセージを保持するビューへのスクロール動作をプルアップします。
ハンドルバー:
<script type="text/x-handlebars">
{{#view App.MessagesView class="message-list" messagesBinding="App.messages" }}
<ul class="nav nav-list">
{{#each messages}}
{{#view App.MessageView contentBinding="this" tagName="li"}}
{{unbound content.from}}: {{unbound content.message}}
{{/view}}
{{/each}}
</ul>
{{/view}}
</script>
JavaScript:
App.MessagesView = Ember.View.extend({
didInsertElement: function() {
this.scroll();
},
messagesChanged: function() {
var that = this;
// invoke this code in the next RunLoop, when changes are made to DOM
Ember.run.next(function() {
that.scroll();
});
}.observes('messages.@each'),
scroll: function() {
console.log('scroll');
var el = this.$();
el.scrollTop(el.prop('scrollHeight'));
}
});