0

可能重复:
Backbone js:如何删除视图中的额外标签?

为什么每当我将新的主干视图附加到 HTML 元素时,它会自动用<div> </div>?

例如,我的 HTML 页面中有一个表格

<table class="table table-hover">

    <thead>
        <tr>
        <th>Column1</th>
        <th>Column2</th>
        </tr>
    </thead>

    <tbody id="tbl">    
    </tbody>

</table>

现在在我的主干控制器中,我执行以下操作

$("#tbl").append(new tblview().render().el);

在实际视图的 HTML 模板中,我有

tblview.html

<tr>
    <td>entry3</td>
    <td>entry4</td>
</tr>

现在,当我在浏览器中查看它并检查 html 元素时,它呈现如下:

<table class="table table-hover">

    <thead>
        <tr>
        <th>Column1</th>
        <th>Column2</th>
        </tr>
    </thead>

    <tbody id="tbl">
        <div>
              <tr>
                <td>entry3</td>
                <td>entry4</td>
              </tr>

        </div>  
    </tbody>

</table>

因此变得完全不合时宜?我该如何解决这个问题?<div> </div>我希望它在表格中呈现没有这些额外内容的视图。

4

2 回答 2

2

Backbone 自动创建一个div包围任何视图。要覆盖默认值,您需要tagName在扩展视图时设置属性。http://backbonejs.org/#View-extend

Backbone.View.extend({
  tagName: "tr"
});
于 2012-12-19T01:14:35.490 回答
0

您的模板不需要包含tr标签。tblView应该tagName设置为tr.

于 2012-12-19T01:14:32.343 回答