1

下面的代码位于渲染函数中的 Backbone.View 中。我正在使用 Backbone.Relational 和 jQuery UI Sortable。

var scopedThis = this;

// make this container a sortable container
this.$el.sortable({
    connectWith: '.wlProductsInRoomContainer',
    revert: true,
    stop: function(){
        scopedThis.getNewSortOrders();
},
receive: function(e, r){

    // get model from newly passed in product
    var prodModel = r.item.data().productView.model;

    // add model to this collection but pass silent so collection add event doesn't get ran
    scopedThis.collection.add(prodModel, { silent: true });

},
remove: function (e, r){

    // get model from product that has left this sortable
    var prodModel = r.item.data().productView.model;

    // remove this model from this collection
    scopedThis.collection.remove(prodModel);

    console.log(scopedThis.collection);

}
});

问题发生在可排序的删除功能中。离开可排序的元素在其 .data() 中包含其对应的模型。所以我们从那里检索它并尝试从这个集合中删除它,但是在之后记录集合时,模型永远不会被删除。让这特别奇怪的是,它上面的接收函数使用相同的精确模型来添加完美的工作。有任何想法吗?感谢您的帮助!

4

0 回答 0