наследование представления backbone.js. Разрешение `this` в родительском

У меня есть случай, в котором используется наследование представлений, и мой код выглядит примерно так:

parentView = Backbone.View.extend({
    events: {
        "some event": "business"
    },
    initialize: function(){
        _.bindAll(this);
    },
    business: function(e){
        ...
        this.someFunc && this.someFunc();
        ...
     }
});

childView = parentView.extend({
    events: {
        ...
    },
    constructor: function(){
       this.events = _.extend( {}, parentView.prototype.events, this.events );
       parentView.prototype.initialize.apply( this );
    },
    initialize: function(){
       _.bindAll(this);
    },
    someFunc: function(){
       ...
    }
});

Обновление: перемещено this.events расширение в конструктор.

Мой ребенок view имеет в себе someFunc , и во время некоторой бизнес-функции в родительском представлении он должен вызывать эту функцию, если она существует. Если this правильно установлен для childView, то this.someFunc должен существовать. Однако это не то поведение, которое я испытываю.

Во время инициализации функции (в родительском элементе), this действительно задано дочернее представление. Однако, когда срабатывает какое-то событие , вызывается бизнес-функция , с this , установленным в paren tView .

7
задан Cœur 3 February 2018 в 15:26
поделиться