【发布时间】:2015-07-01 17:22:06
【问题描述】:
我将 Backbone 与 Marionette 和骨干关系一起使用。
假设我有一个动物园,里面有 Backbone.Collection 的动物。
我在数据库中存储了一只动物(id 为 1)。
现在我将第二只动物添加到 Backbone.Collection 并调用 zoo.save({}, {wait: true})。
作为响应,我的后端服务器返回了两种动物(旧的 id 为 1,新的 id 为 2)。
这行得通。
问题:保存后Backbone.Collection包含三个模型。
- id 为 1 的动物
- 一种没有 id 的动物(只是一个 cid)
- 服务器返回的 id 为 2 的新动物
我只想要两个模型:
- id 为 1 的动物
- id 为 2 的动物
我如何告诉 Backbone 将服务器 ID 设置为已经存在的动物而不是向集合中添加新模型?
其他信息:
我的 Zoo 模型扩展了 Backbone.RelationalModel,其关系定义如下(类似于 http://backbonerelational.org/#RelationalModel-relations 的示例):
relations: [
type: Backbone.HasMany
relatedModel: 'Animal'
collectionType: 'AnimalCollection'
key: 'animals'
]
这就是为什么保存动物园也会更新收藏。
【问题讨论】:
-
Backbone.Collection有.save方法吗? -
感谢您的提问。我添加了一些关于使用骨干关系定义的关系的信息。
标签: javascript backbone.js marionette backbone-relational