Javascript 在初始化后添加backbone.js事件

Javascript 在初始化后添加backbone.js事件,javascript,backbone.js,Javascript,Backbone.js,这段代码没有太多的上下文,但将说明我的问题。这是AMD模块中定义的主干视图,我使用它通过require.js加载 本质上,我希望能够在初始化运行后向主干视图添加事件。现在我正在创建一个空的events对象,然后在一个名为addView的方法中,每次调用函数时我都添加一个事件。这目前不起作用 我不确定事件是在什么时候注册的,但我怀疑当事件对象更改时,我必须以某种方式获取视图来更新它的侦听器 有人知道我如何在初始化后向Backbone.js添加事件吗 define([ 'jQuery'

这段代码没有太多的上下文,但将说明我的问题。这是AMD模块中定义的主干视图,我使用它通过require.js加载

本质上,我希望能够在初始化运行后向主干视图添加事件。现在我正在创建一个空的events对象,然后在一个名为addView的方法中,每次调用函数时我都添加一个事件。这目前不起作用

我不确定事件是在什么时候注册的,但我怀疑当
事件
对象更改时,我必须以某种方式获取视图来更新它的侦听器

有人知道我如何在初始化后向Backbone.js添加事件吗

   define([
    'jQuery',
    'Backbone'],

    function ($, Backbone) {

        var contentViews = new Array();

        var SlidePanelView = Backbone.View.extend({

            events: {},

            /// <param name="targetDataAtt">The unique value inside the target's Data-Slide-Panel-Id attribute</param>  
            /// <param name="event">Backbone event to trigger view</param>
            /// <param name="destroyOnRemove">True to destroy view when removed, False otherwise (Default true)</param>  
            addView: function (targetDataAtt, event, view, destroyOnRemove) {
                destroyOnRemove = typeof destroyOnRemove !== 'undefined' ? destroyOnRemove : true;

                this.events[event] = "viewEventFired";
                contentViews[targetDataAtt] = { View: view, DestroyOnRemove: destroyOnRemove };
            },

            viewEventFired: function (e) {

                var target = $(e.target);
                var id = target.attr('data-slide-panel-id');
                console.log(id);
            }

        });

        // Return a singleton??
        return new SlidePanelView;


    });
定义([
“jQuery”,
“主干”],
函数($,主干){
var contentViews=新数组();
var SlidePanelView=Backbone.View.extend({
事件:{},
///目标的数据幻灯片面板Id属性中的唯一值
///要触发视图的主干事件
///True表示删除时销毁视图,否则为False(默认为True)
addView:函数(targetDataAtt、事件、视图、destroyOnRemove){
destroyOnRemove=typeof destroyOnRemove!=“未定义”?destroyOnRemove:true;
this.events[event]=“viewEventFired”;
contentViews[targetDataAtt]={View:View,DestroyOnRemove:DestroyOnRemove};
},
viewEventFired:函数(e){
var目标=$(e.target);
var id=target.attr('data-slide-panel-id');
console.log(id);
}
});
//返回单身人士??
返回新的SlidePanelView;
});

如果我正确理解了这个问题,在向事件哈希添加其他事件后,调用视图以重新绑定事件

    addView: function (targetDataAtt, event, view, destroyOnRemove) {
       destroyOnRemove = typeof destroyOnRemove !== 'undefined' ? destroyOnRemove : true;
       this.events[event] = "viewEventFired";
       this.delegateEvents();
       contentViews[targetDataAtt] = { View: view, DestroyOnRemove: destroyOnRemove };
    }
它会解除所有现有事件绑定的绑定,并再次重新绑定事件哈希中的所有事件,我不确定这样做的潜在性能问题,但需要注意