Добавление событий backbone.js после инициализации

Этот код не имеет особого контекста, но он проиллюстрирует мой вопрос. Это представление Backbone, определенное в модуле AMD, который я использую для загрузки через require.js

. По сути, я хочу иметь возможность добавлять события в представление Backbone после запуска инициализации. На данный момент я создаю пустой объект событий, а затем в методе addView добавляю событие каждый раз, когда вызывается функция. В настоящее время это не работает.

Я не уверен, в какой момент регистрируются события, но я подозреваю, что мне каким-то образом нужно заставить представление обновлять своих слушателей при изменении объекта events?

Кто-нибудь знает, как добавить события в 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;


    });
9
задан Chris 17 April 2012 в 01:46
поделиться