主干嵌套-通用架构
Backbone Nesting - General Architecture
我一直在做一些研究,但没有看到针对我的特定用例的示例。因此,非常感谢您提供一般的架构建议/资源。
我正在创建地址簿。
- 用户创建联系人和群组。
- 在普通池中创建的联系人。
- 联系人可以关联多个组。
- 如果一个联系人被更新,它被更新到所有的组。
- 如果联系人被从普通分组池中删除,则该联系人将被从所有关联的分组中删除。
为联系人和群组创建单独的集合很容易,但现在我有点卡住了。
看来,骨干关联或骨干关系,甚至嵌套。js将提供我所寻找的。看起来主干关联比主干关系性能更好。有人有使用插件的经验吗?是否有更简单的手工编码解决方案?
是否有一个表示组和集合的骨干模型?该组可以包含一个contactid数组:
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操作的单个联系人的信息。您也可以类似地维护组的集合。
首先,您应该尝试使用标准的骨干方法找到解决方案,只有当您不能-您应该采取侧应用程序。
对于您的应用程序-有一个解决方案。您应该将联系人集合和组集合存储在两个不同的独立集合中。联系人集合中的每个模型都应该有"链接"到它的组元素——例如,额外的字段"groups"只包含它的组模型(如果你知道,JavaScript在操作相同的对象时也会操作链接,所以它是轻量级的)
有了这样的联系人集合,你可以编写一个特殊的方法,使用这个集合按组排序(为此实现集合比较器方法),并返回任何有用的对象进行呈现。例如:{"group1": elements_of_group1, ...}
作为一个副作用,当你删除任何联系人你已经有一致的列表。
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 可以简化嵌套的延迟Q Promises解析吗
- 用于搜索的聚合物嵌套绑定
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- d3中堆栈函数和嵌套函数之间的差异
- 如何打印嵌套对象的所有值
- JavaScript 中的嵌套函数和 “this” 关键字
- 设置嵌套对象属性的更好方法
- querySelector/getElementByClassName嵌套项的顺序
- 猫鼬在特定记录中查找嵌套记录
- 访问嵌套JSON对象的键,其中键是动态的
- D3嵌套组作为x轴
- Ionic和angularjs嵌套步骤应用程序
- 从多维嵌套json数组创建下拉列表
- 默认情况下折叠和展开嵌套列表
- 嵌套对象结构
- 显示嵌套窗体
- 带嵌套json的下划线js查找
- 带有通配符选择器/事件冒泡的嵌套元素