diff --git a/js/views/conversation_view.js b/js/views/conversation_view.js index fa746c3f5..c57711e25 100644 --- a/js/views/conversation_view.js +++ b/js/views/conversation_view.js @@ -12,7 +12,6 @@ var Whisper = Whisper || {}; this.$el.html(Mustache.render(this.template)); this.view = new Whisper.MessageListView({collection: this.model.messages()}); - this.listenTo(this.model.messages(), 'add', this.scrollToBottom); this.fileInput = new Whisper.FileInputView({el: this.$el.find('.attachments')}); @@ -41,13 +40,9 @@ var Whisper = Whisper || {}; } }, - scrollToBottom: function() { - this.view.$el.scrollTop(this.view.el.scrollHeight); - }, - render: function() { Whisper.Layout.setContent(this.$el.show()); - this.scrollToBottom(); + this.view.scrollToBottom(); return this; } }); diff --git a/js/views/list_view.js b/js/views/list_view.js index 6d9444cb9..1d152bb22 100644 --- a/js/views/list_view.js +++ b/js/views/list_view.js @@ -21,6 +21,7 @@ var Whisper = Whisper || {}; if (this.itemView) { var view = new this.itemView({model: model}); this.$el.append(view.render().el); + this.$el.trigger('add'); } }, diff --git a/js/views/message_list_view.js b/js/views/message_list_view.js index bc4aedfda..0c161d4ad 100644 --- a/js/views/message_list_view.js +++ b/js/views/message_list_view.js @@ -6,6 +6,12 @@ var Whisper = Whisper || {}; Whisper.MessageListView = Whisper.ListView.extend({ tagName: 'ul', className: 'discussion', - itemView: Whisper.MessageView + itemView: Whisper.MessageView, + events: { + 'add': 'scrollToBottom' + }, + scrollToBottom: function() { + this.$el.scrollTop(this.el.scrollHeight); + }, }); })();