У меня есть случай, в котором используется наследование представления, и мой код выглядит по существу следующим образом:
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
расширение в конструктор.
Мой дочерний вид имеет someFunc
в нем и во время некоторой бизнес-функции в родительском представлении она должна вызывать эту функцию, если она существует.Если this
правильно установлено на childView, тогда this.someFunc
должно существовать.Однако это не то поведение, которое я испытываю.
Во время функции initialize
(в родительском элементе) this
действительно установлено в дочернее представление.Однако при срабатывании some event
функция business
вызывается с this
, установленным на parentView
.