tagName没有在子视图中启动新的el元素;它继承自父视图

tagName not initiating a new el element in subview; it inherits from the parent view

本文关键字:视图 el 元素 继承 启动 tagName      更新时间:2024-05-01

我有一个这样的设置:

define(['Backbone','text!../templates/contacts.html'],function(Backbone,templ){
var view=Backbone.View.extend({
template:_.template(templ),
el:"#mainContainer",
render:function(){
header=new headerView({tagName:'h1'});
console.log(header.render().el);
this.$el.append(header.render().el);
this.$el.html(this.template);
}
});

var headerView=view.extend({
tagName:'h1',
render:function(){this.$el.html("Header View")
//console.log(this.el)
return this;
}
})
return view;
})

在控制台中,我希望得到<h1>Header View</h1>,但我得到了id为"mainContainer"的div容器

我哪里错了?

您已经使用了现有的元素-el:"#mainContainer"。这就是为什么你不能更改它的标签——它已经被定义了。如果你评论这句话,一切都会如你所料。