使用函数管理骨干中的关系
Using functions to manage relationships in Backbone
我(第一次)使用Backbone.js创建一个相当简单的应用程序。我目前正在与两个具有一对多关系的实体合作:
- 项目:有多个组
- 组:属于一个项目
我研究了几种表示模型之间关系的不同方法,从Backbone自己的建议到韧带再到Backbone关系。但是,我最终决定使用简单的函数调用。例如,在我的"项目"模型中,有一个名为groups()的函数:
groups: function() {
return new Collections.Groups(groups.where({project_id: this.get('id')}));
}
在集团模型中:
project: function() {
return projects.where({id: this.get('project_id')})[0];
}
这允许我执行以下操作:
var foo = new Project();
var foo_groups = foo.groups();
foo_groups.at(0).get('name');
var bar = new Group();
var bar_project = bar.project();
bar_project.get('name');
对我来说,这里的权衡是维护最新关系的开销(当使用像 backbone-relational 这样的东西时)与每次想要获取项目组时调用"groups()"函数所用的处理时间。
当我以这种方式建立更多关系时,谁能建议我在未来可能遇到的任何陷阱,也许推荐一个更好的解决方案(除了上面提到的扩展)?该应用程序最终将具有大约 6 个实体,具有各种一对多和多对多关系
Project.groups
我有一个我称之为AutoUpdatedCollection
的实现。
我在你有一个共享集合的场景中使用它,其中包含一个类的每个模型,并且此集合用于填充在更新共享集合时必须更新的子集合。
检查主干自动更新集合的实现。
按照您的示例,我想有一个名为 window.groups
的公共/共享集合,然后我将像这样实现Project
模型:
// code simplified and no tested
var Project = Backbone.Model.extend({
initialize: function(){
this.groups =
new App.AutoUpdatedCollection({
name: "Project-" + this.id + "-groups",
sourceCollection: window.groups,
filterField: "project_id",
filterValue: this.id
}).filteredCollection;
this.groups.on( "add", this.addGroup, this );
this.groups.on( "remove", this.removeGroup, this );
}
});
也许没有这么简单,如果您有任何问题,请告诉我。
组.项目
我只是在Group.initialize()
中初始化Group.project
属性:
var Group = Backbone.Model.extend({
this.project = window.projects.where({id: this.get('project_id')})[0];
});
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何在AngularJS中将依赖关系传递给原型函数
- 通过JavaScript构造函数引入循环依赖关系
- 使用函数管理骨干中的关系
- 使用依赖关系注入将参数传递给命名函数
- AngularJS 控制器注入依赖关系 - 为什么构造函数有 []
- 解决节点中非阻塞函数调用中的依赖关系
- Ember&RSVP:如何解决路由中的嵌套关系's模型函数
- 如何检测javascript函数的变量依赖关系
- DTM-s-t函数与页面加载规则的关系
- 如何从模块依赖关系(另一个模块)调用函数
- Typescript strictNullChecks检查函数之间的关系
- Javascript中的函数和函数之间的关系是什么
- 传递"返回false"jQuery中函数之间的关系
- jQuery与函数式编程有什么关系?
- 为什么不认为纯函数的实现具有外部依赖关系
- 函数和值之间的关系是什么?
- 用于分析和绘制Javascript函数之间依赖关系的工具
- 如何在 JavaScript 中实现异步函数之间的依赖关系
- 如何将子/父关系合并到排序函数中