backbone.js 未触发提线 puppet 收集事件

pxy2qtax  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(157)

当集合在初始化函数中定义时,Marionette collectionEvent不会触发。例如:

collectionEvents: {
    update: 'onCollectionUpdate',
    change: 'onCollectionChange',
    error: 'onCollectionError',
  },

initialize(opts) {
    this.collection = new ListCollection({...});
}

但当集合被定义为compositeView类上的属性时,它可以正常工作

collection: new ListCollection({...}),
  collectionEvents: {
    update: 'onCollectionUpdate',
    change: 'onCollectionChange',
    error: 'onCollectionError',
  },

我需要在initialize函数中定义集合,因为我有传递给集合所需的构造函数的数据,这有什么原因吗

byqmnocz

byqmnocz1#

您可以只传入一个空集合到视图,以便在创建视图示例时事件绑定正确发生,然后在集合中填充数据。或者只传入包含数据的集合。

const view = new CollectionView({
   collection: new ListCollection(/*data you pass to initialize*/),
});

或在视图的initialize

initialize(opts) {
  this.collection.reset(options.data);
}

我不希望Marionette跟踪您何时添加collection属性以在随机时间点查看,然后相应地创建事件绑定。

相关问题