我有一个Backbone集合和Marionette CollectionView在无序列表中呈现。我只想让它可以排序,所以我需要等到将collectionView放在DOM中。
我可以收听渲染集合时触发的事件,但是当集合放在DOM中时,我不知道如何做同样的事情。
var ContactView = Backbone.Marionette.CollectionView.extend({
id : "contacts",
tagName: "ul",
itemView: UserView,
initialize: function(){
this.triggerMethod("collection:rendered", this);
}
});
var collection = new ContactView({ collection: myContacts });
listenTo(collection, "collection:rendered",usersRendered);
$("#content").append(collection.render().el);
usersRendered: function(){
$("#contacts").sortable(); // #contacts not in the DOM yet
}
答案 0 :(得分:0)
正如您所写,CollectionView和CompositeView触发了一个'集合:呈现'然后'渲染'渲染子视图后的方法。 我能想到你可以完成你想要的任何事情的唯一方法是在创建ContactView实例时提供{el:' #contact'}。或者,如果您要附加view.el,则可以调用.sortable()来执行此操作。不过,第一种方法更好。