我想在Backbone中定义一个扩展Backbone.View的父视图。所有子视图都将从父视图继承。但是每次我创建一个子视图的新实例时,我都需要在父视图中执行一个函数。下面是一个例子(小提琴是here):始终在Backbone中执行父功能
SimpleSample = {};
SimpleSample.ParentView = Backbone.View.extend({
initialize: function(){
//always execute this
console.log('in parent view initialise');
}
});
SimpleSample.Child1 = SimpleSample.ParentView.extend({
initialize: function(){
console.log('in child 1 initialise');
}
});
SimpleSample.Child2 = SimpleSample.ParentView.extend({
});
SimpleSample.App = function(){
this.start = function(){
var child1 = new SimpleSample.Child1();
var child2 = new SimpleSample.Child2();
}
}
$(function(){
var app = new SimpleSample.App();
app.start();
})
的这个输出是,正如你所期望:
in child 1 initialise
in parent view initialise
因为我已经为Child1,在初始化代码(定义初始化() )在ParentView中定义不运行。我不想显式调用每个孩子的ParentView函数。每当有一个从ParentView继承的视图的新实例时,是否有可能总是在ParentView中执行一些代码?
所以它必须包括在每个子视图? – Mark 2015-03-13 13:59:26
抱歉,我没有正确地阅读你的问题。我认为你的问题是如何从父视图调用一个函数。我不知道是否可以在子视图中自动调用父函数而不显式调用父函数。 – 2015-03-13 14:31:57