【问题标题】:How should server respond to backbone sync服务器应该如何响应主干同步
【发布时间】:2011-09-17 15:45:59
【问题描述】:
关于backbone.js 的一些新手问题save 和sync。
在调用保存/同步函数后,骨干网期望从服务器得到什么类型的响应?收到响应后是否需要进行任何特定的后处理?
-
主干如何知道模型是否已经存在于服务器上?从文档中我看到每个模型都有一个isNew 来检查是否有一个“id”。所以“id”是来自服务器的 id,而“cid”是主干为每个模型创建的。正确的?如果是这样,服务器通知主干模型的 id 是什么的一般步骤是什么,什么时候:
a) 首先创建并同步模型,
b) 随后在获取模型时,
c) 还是在页面加载时填充模型?
感谢您的帮助。
【问题讨论】:
标签:
javascript
backbone.js
【解决方案1】:
回答您的问题:
当您从服务器获得响应时,响应数据会通过 parse 方法。对于模型,解析方法必须响应一个属性散列,该散列将在对模型的“设置”调用中使用。对于集合,parse 方法必须响应一个属性哈希数组,该数组代表要由集合维护的模型。在每种情况下,都有使用原始响应对象的默认实现。如果您的响应没有返回可用的哈希值,那么您需要提供自己的 parse 方法来满足您的需求。
您关于 isNew 工作原理的陈述是正确的。您的服务器响应必须提供某种 id,您可以在 parse 方法中使用或转换为模型上的 id 属性。如果您的服务器响应未将对象 id 作为名为“id”的属性调用,则需要进行转换。我认为您的整个第二个问题取决于您对 parse 方法的正确理解。此方法必须返回一个属性哈希,其中还包括“id”属性。