Javascript 木偶收集事件未触发
当集合在initialize函数中定义时,木偶收集事件不会触发。 例: 但当集合被定义为compositeView类上的属性时,它可以正常工作Javascript 木偶收集事件未触发,javascript,model-view-controller,backbone.js,marionette,Javascript,Model View Controller,Backbone.js,Marionette,当集合在initialize函数中定义时,木偶收集事件不会触发。 例: 但当集合被定义为compositeView类上的属性时,它可以正常工作 collection: new ListCollection({...}), collectionEvents: { update: 'onCollectionUpdate', change: 'onCollectionChange', error: 'onCollectionError', }, 有什么原因吗?我需
collection: new ListCollection({...}),
collectionEvents: {
update: 'onCollectionUpdate',
change: 'onCollectionChange',
error: 'onCollectionError',
},
有什么原因吗?我需要在initialize函数中定义集合,因为我将数据传递给集合所需的构造函数您可以将空集合传递给视图,以便在创建视图实例时正确进行事件绑定,然后在集合中填充数据。或者只是传入包含数据的集合
const view = new CollectionView({
collection: new ListCollection(/*data you pass to initialize*/),
});
或者在视图的初始化中
initialize(opts) {
this.collection.reset(options.data);
}
我不希望当您在随机时间点添加
集合属性以查看,然后相应地创建事件绑定时,木偶会进行跟踪。我能够通过在初始化中执行此操作使其工作。delegateEvents()。您知道您提到的解决方案和执行delegateEvents之间的区别吗?就我个人而言,我不会使用this.delegateEvents()
,因为它更像是一个内部方法,我们会调用它两次(一次是在创建视图实例时通过木偶调用,另一次是在初始化时通过我们调用)我刚接到第一个电话,确认收藏。。。
initialize(opts) {
this.collection.reset(options.data);
}