获取Backbone.CollectionView中当前拖动项的索引

时间:2014-09-27 06:28:06

标签: javascript backbone.js backbone-collections

给出一个小组

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

如何对当前模型进行排序?

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

1 个答案:

答案 0 :(得分: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传递给它。

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

在面板上,您可以轻松地收听sort:start:propagated事件

var Panel = Backbone.CollectionView.extend({
  initialize: function(){
    this.listenTo(this, 'sort:start:propagated', function(model){
      //Do magic with model
    })
  },
})