说我有以下结构 -
型号:文件夹
收藏:文件夹
在我的集合视图中,我想在具有特定名称的文件夹上触发事件 -
所以,
FolderCollectionView = Backbone.View.extend({
...
...
editFolder: function() {
this.collection.findWhere({ name: "abcd" }).trigger("editThisFolder");
}
});
FolderModelView = Backbone.View.extend({
...
...
editThisFolder: function() {
//This should get called
}
});
这可能吗?我正在使用事件聚合器,但是,我还没有找到一种方法,我可以在特定文件夹上触发事件,我可以使文件夹视图订阅集合视图事件,但随后所有文件夹视图都响应该事件,我还没有找到一种方法只使特定的文件夹视图响应收集事件。或者以某种方式从集合视图触发特定文件夹视图上的事件。
我是新手,所以如果我错过了重要的事情,请告诉我。
答案 0 :(得分:1)
Backbone有underscore.js作为依赖。其中一个原因是Backbone.js Collections实现了a whole lot of underscore methods。所以你的解决方案应该可行
this.collection.findWhere({ name: "abcd" }).trigger("editThisFolder");
当然,您应该让FolderView
听取该事件并调用该函数
var FolderView = Backbone.View.extend({
initialize: function() {
// assuming a folder model assigned to each view
this.listenTo(this.model, 'editThisFolder', this.editThisFolder);
}
});
这是否回答了你的问题?