2013-06-23 92 views
0

在的CollectionView骨干木偶对象我的初始化函数,我做了以下内容:初始化的CollectionView与集合参考

this.collection_addresses = new AddressCollectionView({ 
    el: 'ul.addresses', 
    collection: options.user.get("addresses") 
}); 

然而AddressCollectionView每当options.user.get("addresses")引用的对象改变时从不更新,我马里奥内特正在自动处理这个问题。用户对象使用提取进行更新。有什么想法吗?

编辑#1 只是为了澄清收集的观点是这样的

var AddressCollectionView = Backbone.Marionette.CollectionView.extend({ 
    itemView: AddressItemView, 
    tagName: 'ul' 
}); 

感谢。

+0

从文档看来,您仍然需要“收听”收集活动 –

+0

@AstDerek为什么? collectionview initailizer通常会监听添加/删除/重置 –

+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接受一个I​​temView控件视图对象定义,(不是一个实例)的事件。此itemView使用collectionview中集合中每个项目的模型进行初始化。我会扩展木偶的itemview类,然后在你的模型上听你的更改事件,并将该itemview视图对象定义(不是实例)注入collectionview。

+0

我已经有了一个地址收集类,我在 –

+0

上面添加了它,你itemView需要在它的初始化块中监听模型改变事件,然后你应该完成。 –