我使用Handlebars.js作为我的Backbone.js应用程序的模板工具.我的视图中的渲染功能通常如下所示:
var source = $("#round").html();
var template = Handlebars.compile(source);
var context = JSON.parse(JSON.stringify(this.model));
var html = template(context);
$(this.el).html(html);
return this;
Run Code Online (Sandbox Code Playgroud)
以上代码通过以下代码附加到主应用程序视图(这是调用上述代码的代码):
$('div#round-container', this.el).append(roundView.render().el);
Run Code Online (Sandbox Code Playgroud)
我的Handlebars模板处理所有样式和布局,因此我将视图的"el"元素留空.Backbone.js会自动在Handlebars模板周围添加周围的div标签.我认为这是因为"el"元素是空白的.有没有办法防止添加周围的div标签?谢谢!
我有以下模板:
<div class="row">
<div></div>
....
</div>
Run Code Online (Sandbox Code Playgroud)
以及以下观点:
var TestView = Backbone.View.extend({
tagName: "div",
template: $("#tests_template"),
initialize: function () {
_.bindAll(this, 'clickbtn');
},
events:
{
"click .btn": "clickbtn"
},
render: function () {
....
{
});
Run Code Online (Sandbox Code Playgroud)
问题是,它产生以下输出:
<div><div class="row">...</div></div>
Run Code Online (Sandbox Code Playgroud)
我如何摆脱外部div?我尝试从视图中删除tagName属性,但它仍然放置div?