2014-09-27 60 views
0

指數給出一個面板入門當前拖動項目的Backbone.CollectionView

var panel = new Backbone.CollectionView({...}) 

如何獲得當前的模型進行排序?

panel.on('sortStart', function(e) { 
    var index = something; 
}); 
+0

? – StateLess 2014-09-27 07:55:31

+0

如果我理解正確,您應該從模型視圖中觸發該事件。 – 2014-09-27 08:15:17

回答

2

我想你使用某種UI操作工具,例如jQuery UI。正如Lesha在她的comment中所說的那樣,可以通過觸發模型視圖上的事件來完成。

//creting children view 
var PanelItem = Backbone.View.extend({ 

    events: { 
    "sortStart": "sortEventPropagation" 
    }, 

    initialize : function (options) { 
    this.parentView = options.parentView; 
    }, 

    sortEventPropagation: function(){ 
    this.parentView.trigger('sort:start:propagated', this.model); 
    }, 
}) 

每次創建panelItem視圖時,都需要在選項中將其作爲parentView傳遞給panelItem視圖。

var childView = new PanelItem({ 
    parentView: panel 
}) 

而且面板上,你可以很容易地listenTo sort:start:propagated事件

var Panel = Backbone.CollectionView.extend({ 
    initialize: function(){ 
    this.listenTo(this, 'sort:start:propagated', function(model){ 
     //Do magic with model 
    }) 
    }, 
}) 
你想獲得排序的完整集合,如果不是你是什麼讓模型分類意味着
+0

謝謝,我已經得到了這個工作。我不得不綁定到sortstop(在ul元素上拖拽列表)和sortStop(在Backbone.CollectionView上)。 – Zahymaka 2014-10-01 07:13:26