运输backbone.js模型?

fan*_*ncy 1 javascript json backbone.js

如果我JSON.stringify骨架模型与嵌套集合/模型,通过websockets发送到另一个骨干客户端和JSON.parse模式model = JSON.parse(model)将变量模型工作,就像在其他客户端上一样?

mu *_*ort 7

没有.

也许我会详细说明.当我这样做:

var o = JSON.parse(JSON.stringify(model));
Run Code Online (Sandbox Code Playgroud)

我最终得到了一个简单的对象o.为什么?嗯,首先,JSON.parse()对基本类型(其中Array和Object被认为是原始类型)一无所知,特别是它不知道Backbone模型是什么,所以它不能重建一个.此外,JSON.stringifytoJSON在其参数上调用方法(如果它有一个当然)并且Backbone提供一个toJSON简单地将模型属性的副本作为简单(可能是嵌套的)对象返回.因此,一旦你有输出JSON.stringify(model),字符串和模型之间根本没有连接,你只需要一个普通的旧序列化JavaScript对象.

如果您想将Backbone模型从一个系统移动到另一个系统,我认为您必须自己跟踪所有模型类型和对象信息,然后在另一侧手动重建对象图的序列化部分.

您可能最好将模型保存回其URL,将ID发送到其他Backbone客户端,然后像往常一样从模型的URL重新加载它.JSON用于序列化数据,而不是对象,在将对象留给应用程序时解释数据.