Javascript 是否可以避免添加“默认视图元素”;分区;在木偶中使用appendHtml()时?

Javascript 是否可以避免添加“默认视图元素”;分区;在木偶中使用appendHtml()时?,javascript,jquery,backbone.js,marionette,Javascript,Jquery,Backbone.js,Marionette,我正在使用以下代码将视图手动附加到模板中的dom元素: appendHtml: function(collectionView, itemView, index){ collectionView.$("ul#search_list_container").append(itemView.el); } 在我的模板中,我有: <script id='search-list-grid-template' type='text/x-handlebars-template'>

我正在使用以下代码将视图手动附加到模板中的dom元素:

appendHtml: function(collectionView, itemView, index){
      collectionView.$("ul#search_list_container").append(itemView.el);
}
在我的模板中,我有:

<script id='search-list-grid-template' type='text/x-handlebars-template'>
    <ul id="search_list_container"></ul>
</script>

    尽管我将视图附加到ul#search(搜索)列表(container#中)容器中,但仍有默认的div包装模板:

    <div>
        <ul id="search_list_container">
        <a href="#">
            <span id="search_list_item">
                id
                invoice_number
            </span>
        </a>
        </li>
        </ul>
    </div>
    
    
    
    有没有办法避免显示默认标记“div”?我对此没有问题,但每当我想到这个例子时,我总是会想到这个疑问

    注意:我有一个用于ul compositeView的itemView,以及一些其他未在此处显示的内容。

    对于jQuery,您可以使用它

    试试这个:

    更改:

    collectionView.$("ul#search_list_container").append(itemView.el);
    
    collectionView.$("ul#search_list_container").append(itemView.el).unwrap();
    
    至:

    collectionView.$("ul#search_list_container").append(itemView.el);
    
    collectionView.$("ul#search_list_container").append(itemView.el).unwrap();
    

    关于此集合视图的两件事不需要模板,

    它要么呈现

        ,具体取决于收藏是否有任何内容


        也就是说,如果你不想在每一个项目的“div”。尝试 添加

        然后从项目模板中移除包装

      • 您不需要为此用例修改appendHtml att all。

        主干
        视图设计为将自己的DOM元素存储为视图的
        el
        属性

        不建议按照Steven Farley的建议删除视图的元素,因为事件可能会绑定到它

        最好的方法是将
        集合视图的
        标记名
        属性更改为
        ul


        另请参见:

        问题的其他副本的可能副本:还有几十个其他副本,都有相同的问题和答案。我觉得有必要回答,因为集合模板这是解决此问题的正确方法吗?它有任何副作用吗?当要渲染到的DOM元素是现有区域时,这不起作用。jqueryui选项卡就是一个例子。如果您的ul已经在DOM中(动态渲染的区域),然后您希望li直接渲染到DOM中(无包装器),则设置collectionView标记名属性将不起作用。您的收藏将简单地由该标签包装。有时,我们需要能够将项目直接渲染到现有元素中。为什么这在木偶2.x中不再是一个选项?这是一个通过在1.x中设置collectionView的el属性来实现的选项。HierarchyRequestError我的第一直觉是,该区域在语义上不应该像“ul”标记那样具体。您可以将该区域设置为“div”,将collectionView设置为“ul”,而子对象可以再次设置为“li”。我不确定2.x中的当前状态,最近没有使用主干或木偶。