基本问题
我想通过socket.emit()发送一个对象,但对象没有被完全发送。我可能只是误会如何做到这一点,但这里的例子:通过Socket.io发射Backbone.js模型
console.log(object)
的结果
{ length: 8,
models:
[ { attributes: [Object],
_escapedAttributes: {},
cid: 'c1',
changed: {},
_silent: {},
_pending: {},
_previousAttributes: [Object],
lots: [Object],
_changing: false,
collection: [Circular],
_callbacks: [Object] },
... ETC
虽然
socket.emit(e,object);
的结果:
{"name":"read:AllAuctions","args":
[[{"auctionId":"298"},{"auctionId":"381"},{"auctionId":"385"},
{"auctionId":"393"},{"auctionId":"394"},{"auctionId":"395"},
{"auctionId":"402"},{"auctionId":"800"}]]}
它到达前端后者格式。
进一步详细地
我已经创建了一个尝试更新使用socket.io客户端主干模型的服务器。还有一部分是用在此处指定的想法:
http://developer.teradata.com/blog/jasonstrimpel/2011/11/backbone-js-and-socket-io
不同的是,我已经创建的后端骨干机型。我的逻辑是共享基本模型文件,并让后端处理与持久层进行通信并保持“真实”数据源优化,然后响应请求来获取这些模型/集合以及自动推送更新。
一切似乎都在工作,但是我应该将模型转移到前端。我是否需要扩展/覆盖到JSON或其他实际将其转换为传输的方法?如果是这样,我该怎么做?任何帮助,你可以给我将不胜感激!
我认为这可能也是问题,但它也是一样的。是否有机会我需要覆盖该集合的toJSON方法以确保它也返回每个子模型的完整主体?我试过了,但我可能做错了,因为它返回了相同的东西。 – NateDSaint 2012-04-13 20:00:32
感谢您的帮助!事实证明,套接字已经试图使用toJSON对其进行编码,但是我的toJSON函数只返回集合中模型的属性。 – NateDSaint 2012-04-16 15:22:44