解决了
我正在使用 Backbone.Marionette 构建日历/任务管理应用程序。这个应用程序有几个视图,包括待办事项列表和每日、每周和每月视图。
一些任务具有周期性(例如,一个任务可能在每个星期五到期)并且必须在不同单元格中的同一视图(使用相同的 itemView)中多次显示。
Daily.Content = Marionette.CompositeView.extend({
itemView: Daily.Event,
template: "#content-daily",
appendHtml: function(collectionView, itemView, index){
//Obtains an id to append the items
var id = "#x";
var otherId = "#y";
// Appends the itemView
collectionView.$(id).append(itemView.el);
// A different itemView with the same model
var item = new Daily.Event({model:itemView.model}).render();
collectionView.$(otherId).append(item.el);
}
},
现在同一个模型显示两次。单击 itemView(Daily.Event) 可以将其删除。
deleteEvent: function(e){
e.preventDefault();
this.trigger("event:delete", this.model);
},
有一个 Daily.controller 处理它,它适用于原始 itemView,但不适用于第二个。我不知道问题是我实例化新视图的方式还是我应该进行某种绑定。
我基本上想实现这个人想要的:使用 Marionette CollectionView to create multiple views per item
有任何想法吗?