我有一个 MySQL 数据库,其中包含一个文件表和一个文件夹表,其中包含与文件夹表相关的文件表上的外键。对于文件夹集合,我必须使用文件夹模型和文件模型填充集合。因为差异模型 ids 冲突一个模型抹杀另一个。我的问题是,我该如何克服这个问题。
问问题
52 次
1 回答
1
为避免在这种情况下发生 id 冲突,您可能需要更改 Backbone 将用作 id 的属性。标准是属性“id”,但您可以通过更改 idAttribute 属性来修改它。
这是你如何做到的:
idAttribute: 'uniqueId',
其中 uniqueId 是您肯定知道永远不会发生冲突的属性。
如果你没有一个独特的价值,你必须创造一个。这可以通过重写解析函数(从后端接收数据时调用)来完成。这是创建复合 ID 的方式:
parse:function(data){
if(_.isArray(data){
_.each(data, function(record){
record['uniqueId'] = record['id'] + ':' + ([check if record is a file] ? record['folderId'] : '');
}
}
return data;
}
现在,您所有的文件夹 uniqueId 都将与它们的 id 相同,并且文件 uniqueId 将是文件 id 和文件夹 id 的组合。
于 2013-06-27T09:33:18.513 回答