【发布时间】:2015-05-22 13:18:04
【问题描述】:
我正在使用骨干关系来处理我的集合。
我有一个复杂的对象,里面可能有重复的 id。例如
{
id: "things/1",
children: [
{
id: "things/2",
children: [
{
id: "things/3",
children: null
}
]
},
{
id: "things/4",
children: [
{
id: "things/3",
children: null
}
]
},
]
}
然后我尝试将其用作关系集合,就像这样。 (用 TypeScript 编写)。
constructor(options?) {
// ...
this.idAttribute = 'Id';
this.relations = [{
type: Backbone.HasMany,
key: 'Children',
relatedModel: 'Application.Models.MyModel',
collectionType: 'Backbone.Collection'
}
];
super(options);
}
但是,一旦我从服务器获得重复的 id,BBR 就会愤怒地抛出异常,事情就不会发生。 “重复 ID!”
我是否应该根据这些模型的 guid 生成某种假 id?或者有没有办法告诉骨干关系存储停止执行这个规则?也许我可以完全关闭商店。
我没有使用它来进行任何集合获取、获取相关信息或类似的事情。我真的将它用作解析递归数据结构的好方法。
我在编写 Jasmine 测试时也经常遇到这个问题,但通过为每个测试添加随机 *10 乘法器以确保 id 不同,设法解决了这个问题。但是不得不这样做是一件令人头疼的事情。所以希望这里的任何修复也能帮助我进行单元测试。
我并不反对尝试不同的框架,但我的项目中的一些模型使用 BBR,所以它需要很好玩。如果还有其他更合适的东西,也请随时提出建议。
【问题讨论】:
标签: backbone.js backbone-relational