在我的CollectionView Backbone Marionette对象的初始化函数中,我正在执行以下操作:
this.collection_addresses = new AddressCollectionView({
el: 'ul.addresses',
collection: options.user.get("addresses")
});
然而,只要AddressCollectionView
中引用的对象发生更改,options.user.get("addresses")
就永远不会更新,我想Marionnette会自动处理这个问题。使用fetch更新用户对象。有什么想法吗?
编辑#1 只是为了澄清集合视图就像这样
var AddressCollectionView = Backbone.Marionette.CollectionView.extend({
itemView: AddressItemView,
tagName: 'ul'
});
感谢。
答案 0 :(得分:0)
来自v1.0.3源代码,这里是collectionview监听的事件
_initialEvents: function(){
if (this.collection){
this.listenTo(this.collection, "add", this.addChildView, this);
this.listenTo(this.collection, "remove", this.removeItemView, this);
this.listenTo(this.collection, "reset", this.render, this);
}
},
collectionView接受itemView视图对象定义(不是实例)。此itemView使用collectionview中集合中每个项目的模型进行初始化。我会扩展marionette的itemview类,并在那里的模型上监听你的更改事件,并将itemview视图对象定义(不是实例)注入到集合视图中。