2

我正在编写一个利用 Ember.js、Ember Data 和通过 Node.js 的 Socket.IO 的应用程序。我试图找出从套接字响应接收数据并将其加载到我的 Ember 数据存储中的最佳方法,例如:

window.socket = io.connect('http://localhost');

socket.on('action here', function(response) {
  // how to load "response" JSON data into Ember Data store from here...?
});

编写自定义 DS.Adapter 是最好的(或唯一好的)解决方案吗?还是有另一种好的、可维护的方式来实现这一点?

4

2 回答 2

4

最好的方法是编写自己的适配器,但如果您只需要加载模型(不保存),您可以使用适配器的load方法 - 如下所示:

socket.on('single-model', function(response) {
    DS.defaultStore.load(response);
});

socket.on('multiple-models', function(response) {
    for(i in response){
        DS.defaultStore.load(response[i]);
    }
});

将适配器定义为FixtureAdaptor.

于 2013-02-27T15:21:21.313 回答
1

作为记录,我最终选择了这里提出的答案:

https://stackoverflow.com/a/14508316/1470194

使用 Ember.Instrumentation 技术,我能够方便地调用我的控制器并以这种方式访问​​我的商店。

我意识到在许多情况下可能需要编写自定义适配器,但这超出了我项目所需的范围,所以这个解决方案最终是完美的。

于 2013-03-06T13:10:17.937 回答