如何断开主干集合,使每个子集合也注册到将由父集合注册的所有事件
how to break backbone collection such that each of the child collection also register to all the events that will be registered by parent collection
我想分解一个主干集合,以便每个子集合也注册到将由父集合注册的事件。
例如,我有收集
parent = {
models : [model1, model2, model3, model4, model5 ]
//other properties of collections
}
插入按特定属性(如"a")分组的子对象
child1 = {
models : [model1, model2, model4],
//other properties of collection
}
child2 = {
models : [model3, model5],
//other properties of collection
}
附言:子集合的数量并不具体。这些都是动态创建的。
现在,每当父集合上发生任何事件(自定义或预定义)时,我都想要。所有子集合也应注册这些事件。
有什么合适的方法吗?
您要完成的任务有几部分。首先,您希望在子集合上触发的任何事件都能执行某些操作;为了实现这一点,您可以使用特殊的"所有"事件绑定:
var ChildCollection = Backbone.Extend({
initialize: function() {
this.on('all', this.handleEvent);
},
handleEvent: function() {
// do something
}
});
接下来,你想让你的孩子收藏了解他们的父母,你可以使用一个选项:
initialize: function(options) {
this.parent = options.parent;
this.on('all', this.handleEvent);
},
然后在创建新的子集合时传入该选项:
var parent=new Backbone.Collection();var child1=新的ChildCollection([model1,model2,model4],{parent:parent});
最后,您希望在父级上触发事件:
handleEvent: function(e) {
this.parent.trigger.apply(this, arguments);
}
希望能有所帮助。
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Meteor-将选定窗体中的对象添加到集合中
- 主干集合重置和解析
- 使用数据上的角度更改设置集合的第一个元素的动画
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- Lodash从集合创建集合
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 点击facebook像素跟踪注册(JS/JQUERY代码)
- 如何合并不同集合的游标并按日期排序
- 将当前用户的 ID 推送到 meteorjs 中集合/文档的内部数组
- 使用它更新集合中的嵌套数组's索引
- 当组件准备就绪时,如何在Polymer中动态注册新属性
- 主干-从模板中迭代的集合中获取特定的模型
- 微风得到的是实体而不是对象的集合
- 注册OpenLayers事件时,即使使用匿名函数或绑定,JavaScript关闭也会触发循环内的所有内容
- Meteor:插入集合后如何执行JS
- 如何使用javascript var引用Mongo DB集合's字段
- MongoDB-通过比较集合和对象的数组来返回现有字段的数组
- 如何断开主干集合,使每个子集合也注册到将由父集合注册的所有事件