我的路由器已连接到socket.io服务器。
afterModel: function () {
var self = this;
socket.on('message', function (message) {
// adding message to Ember.DS
}
}
Ember将消息附加到div,但是当滚动显示时,我需要让Ember向下滚动它。我可以用jQuery这样做
Ember.$('.messages-area').scrollTop(1000000);
但是我需要在哪里为这个动作绑定事件侦听器呢?
3条答案
按热度按时间lskq00tm1#
根据您执行此操作的方式,您可以使用操作处理程序-请参阅此处:Ember - handling actions in views
检视事件行程常式的完整清单如下:
http://emberjs.com/api/classes/Ember.View.html#toc_event-names
如果你能使用其中一个预定义的处理程序,那么它无疑会是一个更简洁的逻辑。然而,听起来你可能无法做到这一点,因为你不是通过用户交互直接将文本输入到div中。然后你需要做的是,在你的
didInsertElement
方法中,有一个jQuery循环来检查要更新的div的内容,然后在内容更新时运行滚动。0wi1tuuw2#
Ember不鼓励事件绑定,而是通过事件委托来捕获用户事件。
在您的情况下,可以将代码放在View中。
例如,假设我有一个应用程序模板:
然后,您可以在ApplicationView中捕获单击事件,例如:
uyto3xhc3#
我需要观察模型的变化,并在变化后添加滚动到ember运行循环。