0
我有一個基本視圖和一個子視圖,它使用名爲「菜單」的屬性擴展了基本視圖。我嘗試了以下。覆蓋子視圖中的自定義屬性
var baseView=Backbone.View.extend({
menu:"#base-menu",
initialize:function(){
//some code
},
render:function(){
console.log(this.menu);
}
});
var childView=baseView.extend({
initialize:function(){
baseView.prototype.initialize.apply(this);
this.menu="#child-menu";
}
});
但childView.render()
不輸出#child-menu
它只是設置爲#base-menu
。爲什麼以及如何讓孩子一套?
注意:有多個孩子的意見。
var baseView = Backbone.View.extend({
menu: "#base-menu",
initialize: function() {
console.log(this.menu);
},
});
var firstView = baseView.extend({
initialize: function() {
baseView.prototype.initialize.apply(this, arguments);
this.menu = "#child-menu";
console.log(this.menu);
}
});
var firstViewInstance = new firstView();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://underscorejs.org/underscore-min.js"></script>
<script src="http://backbonejs.org/backbone-min.js"></script>
似乎工作正常(https://jsfiddle.net/ambiguous/hdc92byn/)。你能重現你的問題嗎?你真的在做'childView.render()'而不是'c = new childView; c.render()'?通常你會把'BaseView'和'ChildView'作爲「classes」,'childView'作爲BTW的「實例」。 –