0

在 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'
});

谢谢。

4

1 回答 1

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 用集合中每个项目的模型初始化。我会扩展木偶的 itemview 类,并在那里监听模型上的更改事件,并将 itemview 视图对象定义(不是实例)注入到 collectionview 中。

于 2013-06-24T04:12:29.817 回答