我在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种不同的做法,我不知道哪一种更好:
photo_2
。这导致后端的更改以及前端的某些更改在/photos/photo_2
1000000
。这将极大地降低上传具有给定ID的照片的特定用户也创建了具有相同ID的相册的可能性。答案 0 :(得分:7)
我建议在相册和照片上添加以下内容:
idAttribute: 'uniqueId'
parse: function(response) {
response.uniqueId = type+'_'+response.id
return response;
}
答案 1 :(得分:0)
idAttribute:'uniqueId'
如果在声明时不知道此uniqueId,请尝试
idAttribute:'UUID'
我从https://www.uuidgenerator.net/生成了一个,并将其放在此处,此处定义的此属性不需要在模型中,因此我只放入一个UUID。