Backbone.js序列化模型属性以进行同步
Backbone.js serializing the models attributes for syncing
我正试图将一个相当复杂的模型(包括嵌入式集合)保存回关系数据库。由于嵌入了集合返回到服务器的数据包含足够公平的对象。然而,我正在现有应用程序的基础上构建主干应用程序,并且必须以标量形式返回值才能重用服务器端代码。最好的办法是,我一直在考虑覆盖模型的toJSON函数,但我觉得它不应该是。所以我能想到的另一种选择是覆盖sync方法并在那里执行。然而,即使这样似乎也不对。我是遗漏了什么,还是覆盖同步方法是一种必要的邪恶?
要覆盖从数据库保存和加载模型的方式,可以覆盖两种方法。
Model.toJSON
在此处放置自定义序列化逻辑Model.parse
在此处放置自定义反序列化逻辑
理想情况下,您只有自定义的序列化/反序列化逻辑来"优化"数据库。即,如果您有一个Age
和DateOfBirth
字段,则只将其中一个存储在数据库中的Model.toJSON
中,并将另一个计算在Model.parse
中。
如果您需要NOT特定于模型的自定义序列化/反序列化逻辑,则覆盖Backbone.Sync
。
您也可以覆盖model.Sync
。这意味着该模型将使用特定的自定义Sync
函数,而不是使用Backbone.Sync
我认为您覆盖sync方法的想法是完全正确的。toJSON应该始终返回JSON,如果它返回的不是JSON,其他程序员可能会发现很难理解您的代码。
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 如何同步数据属性并选择框值
- 角度:如何使$scope属性与控制器功能保持同步
- ExtJS 6 访问消息属性在存储同步的回调
- 每当我更改“geometry.setDrawRange”属性时,同步就会停止
- JavaScript 对象镜像/单向属性同步
- 如何同步声明JS对象,然后用依赖于并发操作的数据编辑对象的属性
- 如何保持父作用域属性和隔离作用域属性同步
- 淘汰不同步手动设置的选项's所选属性
- Backbone.js序列化模型属性以进行同步
- 通过JavaScript事件同步两个CSS属性