我一直在做一些研究,并没有看到我的具体用例的例子。所以一般的架构建议/资源将不胜感激。
我正在创建一个地址簿。
为联系人和群组创建单独的集合很容易,但现在我有点卡住了。
看来Backbone-associations或Backbone-relational甚至nesting.js会提供我正在寻找的内容。看起来Backbone-association比Backbone-relational更具性能。有没有人有任何插件的经验?是否有更简单的手动代码解决方案?
答案 0 :(得分:1)
首先,您应该尝试使用标准骨干方法找到解决方案,并且只有在您不能的情况下 - 您应该采用侧面应用。
至于您的应用程序 - 有一个解决方案。您应该将联系人集合和组集合存储在两个不同的分隔集合中。联系人集合中的每个模型都应该与其组元素“链接” - 例如,仅包含其组模型的其他字段“组”(如果您知道,当您操作同一个对象时,JavaScript会运行链接,因此它是轻量级的)< / p>
收集此类联系人后,您可以编写一个特殊方法,该方法使用按组排序的此集合(为此实现集合比较器方法)并返回任何有用的对象进行渲染。例如:
{"group1": elements_of_group1, ...}
作为移除任何联系人的副作用,您已经拥有一致的列表。
答案 1 :(得分:1)
您是否可以拥有代表组和集合的骨干模型。该组可以包含一系列contactIds:
var Contact = Backbone.Model.extend({
defaults: {
name: "SomeName",
phone: "1234567890",
...
}
});
var Group = Backbone.Model.extend({
defaults: {
name: "someName",
contactIds: [1, 2, 3, 4]
}
});
var Contacts = Backbone.Collection.extend({
model: Contact
});
如果您需要访问存储在给定组中的联系人的详细信息,您可以执行以下操作:
contacts.get(id);
返回CRUD操作的个人联系信息。您可以类似地维护一组组。