У меня есть случай, в котором используется наследование представлений, и мой код выглядит примерно так:
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
.