我们有两个主干视图:父视图(PersonView)及其子视图(LocationView)。 他们的模板,用Mustache表示法,是下一个:
PersonView template:
<h2>{{fullName}}</h2>
<div>
<h3>Address:</h3>
{{{location}}}
</div>
LocationView template:
<hr />
<dl>
<dt>City:</dt>
<dd>{{city}}</dd>
<dt>Place:</dt>
<dd>{{place}}</dd>
</dl>
注意这些模板没有父元素;所以,Backbone会指责他们 默认情况下“el”属性中的“div”元素。
在PersonView的“渲染”方法中,我们如何将LocationView的渲染HTML添加到 “PersonView.el”没有放弃LocationView的事件而没有添加deafult包装 “LocationView.el”的“div”元素?
我们尝试了很多方法,如果我们删除de subview的“el”属性,我们总是会松开 事件(在子视图中),但如果我们保留“el”,那么如果我们愿意,我们就会遇到问题 将它与jQuery事件联系起来: - (
有人对此有任何解决方案吗? 提前谢谢。
答案 0 :(得分:0)
详细说明我的评论......
LocationView:
var LocationView = Backbone.View.extend({
tagName: 'dl'
});
LocationView模板:
<dt>City:</dt>
<dd>{{city}}</dd>
<dt>Place:</dt>
<dd>{{place}}</dd>
PersonView模板:
<h2>{{fullName}}</h2>
<div>
<h3>Address:</h3>
<hr />
{{{location}}}
</div>
现在,在LocationView实例中,this.el
将是<dl>
而不是<div>
。