Cha*_*had 18 socket.io ember.js ember-data
我一直在四处寻找,我找不到任何最新的ember(1.0.0-rc.1)和ember-data(修订版11)也使用socket.io的例子.我尝试过这样的事情.
App.ApplicationRoute = Ember.Route.extend({
setupController: function(controller, data) {
var socket = io.connect(),
self = this;
socket.on('apartment/new', function(apartment) {
var apt = App.Apartment.createRecord(apartment);
self.controllerFor('apartments').pushObject(apt);
});
}
});
Run Code Online (Sandbox Code Playgroud)
这实际上将创建一个新的模型类,它将对象推送到控制器,并创建一个新的li但值不会呈现.
<ul class="list-view">
{{#each apartment in controller}}
<li>
{{#linkTo 'apartment' apartment }}
<span class="date">{{date apartment.date}}</span>
{{apartment.title}}
{{/linkTo}}
</li>
{{/each}}
</ul>
Run Code Online (Sandbox Code Playgroud)
这与运行循环有关吗?如何强制渲染值?或者有更好的方法吗?
Jak*_*old 15
有一个非常简单的解决方案,我在我的一些应用程序中使用.您可以为套接字设置通用回调并接受任何类型的数据
callback: function(message) {
// this is better than just `eval`
var type = Ember.get(Ember.lookup, message.type);
store.load(type, message.data);
}
Run Code Online (Sandbox Code Playgroud)
或者在这里它专门针对您的用例量身定制
socket.on('apartment/new', function(apartment) {
store.load(App.Apartment, apartment);
});
Run Code Online (Sandbox Code Playgroud)
using store.load将把记录数据直接加载到身份映射中.还有loadMany加载多个记录.
| 归档时间: |
|
| 查看次数: |
5795 次 |
| 最近记录: |