我有一个标准的问题路线,例如:
App.MessagesRoute = Ember.Route.extend({
    model: function() {
        return App.Message.find();
    }
});
这对于我从 REST 端点获得的现有消息集非常有用。但我也通过 websocket 收到新消息。在 RC2 路由架构(和非 Ember 数据存储)中,我如何将这样的新消息干净地插入 Ember?
我有一个标准的问题路线,例如:
App.MessagesRoute = Ember.Route.extend({
    model: function() {
        return App.Message.find();
    }
});
这对于我从 REST 端点获得的现有消息集非常有用。但我也通过 websocket 收到新消息。在 RC2 路由架构(和非 Ember 数据存储)中,我如何将这样的新消息干净地插入 Ember?
我使用在How to fire an event to Ember from another framework中讨论过的 Ember.Instrumentation 框架元素解决了这个问题。
这是我的完整代码:
...
// this is fired from my websocket message reception code.
Ember.Instrumentation.instrument('onMessage', message);
...
App.MessagesRoute = Ember.Route.extend({
    setupController: function(controller, model) {
        Ember.Instrumentation.subscribe('onMessage', {
            before: function(name, timestamp, message) {
                controller.send('onMessage', message);
            },
            after: function() {}
        });
    },
    model: function() {
        return App.Message.find();
    }
});
App.MessagesController = Ember.ArrayController.extend({
    onMessage: function(message) {
        this.unshiftObject(message);
    }
});