【发布时间】:2013-05-29 22:34:12
【问题描述】:
我在 Backbone 中有一个合并的集合,其中包含照片和相册。
为了区分它们,我添加了一个字段type,即photo 或album。当我填充集合时,我在 Collection#model 方法中创建不同的模型
model: (attrs, options) ->
switch attrs.type
when 'album' then new App.Models.Album(attrs, options)
when 'photo' then new App.Models.Photo(attrs, options)
现在我发现了一个奇怪的错误,即添加具有相同 ID(例如 2)的照片和相册会导致合并。
我已经在源代码中追踪到these LOC。如果不创建 Backbone 本身的分支,它似乎是可以撤消的。我试过了,但它也是fails 35 tests。
我想到了 4 种不同的方法,我不知道哪种方法更好:
- 我可以为 id 添加一个前缀。假设
photo_2。这会导致后端的更改以及前端的某些更改不会到达/photos/photo_2的服务器 - 我可以分叉 Backbone 和 change these LOC。
- 我可以创建两个单独的集合,但必须在视图中处理合并和排序(这会影响客户端性能并需要重写后端)
- 我可以从带有照片的 ID 开始,比如说
1000000。这将极大地降低已上传具有给定 ID 的照片的给定用户也创建了具有相同 ID 的相册的可能性。
【问题讨论】:
标签: javascript backbone.js coffeescript