2013-04-10 55 views
1

我有這樣一個標準的問題路線:逐步增加車型控制器

App.MessagesRoute = Ember.Route.extend({ 

    model: function() { 
     return App.Message.find(); 
    } 

}); 

這對於現有的一套,我從一個REST端點獲取消息的偉大工程。但我也通過websocket獲得新消息。如何在RC2路由架構(和非Ember數據存儲)中如何將這些新消息直接放入Ember中?

回答

0

我使用在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); 
    } 
});