Backbone.js视图中的Draggabilly.js事件

zz2j4svz  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(156)

我在 Backbone.js 视图中使用Draggabilly.js,如下所示:

var appView = Backbone.View.extend({
    initialize: function(){
        this.render();
    },
    render: function(){
     var draggie = new Draggabilly(this.el);
     draggie.on('dragEnd', this.updateModel); //This works by I can access the this.model
    },
    events: {
      'dragEnd':'updateModel' //This doesn't work
    },
    updateModel: function(instance, event, pointer){
      //Here I want to update my model bassed on the pointer's x and y
      //However I can't access this.model
    }
)};

当拖拽结束时,拖拽能力提供了一个事件'dragEnd'。但是我可以把它作为一个事件集成到我的 Backbone.js 视图中。
能不能请你指点一下?

ui7jx7zq

ui7jx7zq1#

要访问View上下文,您可以执行以下操作:

draggie.on('dragEnd', _.bind( this.updateModel, this ));

但是,如果您希望稍后删除dragEnd的侦听器,则在初始化代码中使用bindAll可能会很有用:

initialize: function() {
   _.bindAll(this, 'updateModel');
}

有关详细信息,请查看Backbone文档。

相关问题