关于DOM事件的骨干木偶集合

时间:2014-04-04 09:54:34

标签: jquery-ui backbone.js marionette

我有一个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 
    }

Jsfiddle

1 个答案:

答案 0 :(得分:0)

正如您所写,CollectionView和CompositeView触发了一个'集合:呈现'然后'渲染'渲染子视图后的方法。 我能想到你可以完成你想要的任何事情的唯一方法是在创建ContactView实例时提供{el:' #contact'}。或者,如果您要附加view.el,则可以调用.sortable()来执行此操作。不过,第一种方法更好。