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的“实例”。 –