【问题标题】:Binding and Unbinding Backbone Events绑定和解除绑定主干事件
【发布时间】:2013-09-11 00:04:43
【问题描述】:

我的 Backbone 视图有一个事件 Popout,单击该事件会创建一个新视图并在 Kendo 窗口中打开该视图。我想要的是当我点击按钮时,我在这个视图中的事件被解除绑定,我可以在 Kendo Window 中使用我的新视图。 接下来,当我关闭 Kendo Window 时,我希望我的事件重新绑定。但是我在这方面遇到了错误。

Uncaught TypeError: Object [object Object] has no method 'delegateEvents' 如何在剑道窗口的关闭功能上重新绑定我的事件?

popout: function(){
                this.stopListening();
                  //this.delegateEvents();
                  this.undelegateEvents();              
                var model = this.model;
                var popOutModuleView = new PopOutModuleView({model:model});
                lightRegion.show(popOutModuleView);
                Backbone.trigger("popout");
                event.preventDefault();
                var a = $('#lightbox').kendoWindow({
                    actions: ["Maximize", "Close"],
                    title: name,
                    width: "90%",
                        height: "90%",
                        resizable: true,
                    close: function(e){
                        popOutModuleView.remove();
                        lightRegion.close();
                        this.delegateEvents();                  
                    }
                });

【问题讨论】:

    标签: javascript jquery backbone.js kendo-ui


    【解决方案1】:

    “this”不是指Backbone.View,因此delegateEvents() 是未知的。您必须将 this 绑定到 close 函数或使其在 close 函数的范围内可用。

    popout: function() {
        var _this = this;
        // CODE
        var a = $('#lightbox').kendoWindow({
            // CODE
            close: function() {
                 _this.delegateEvents();
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      相关资源
      最近更新 更多