Javascript 是否可以避免添加“默认视图元素”;分区;在木偶中使用appendHtml()时?
我正在使用以下代码将视图手动附加到模板中的dom元素: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'>
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();
关于此集合视图的两件事不需要模板,
它要么呈现
-
或
-
您不需要为此用例修改appendHtml att all。主干视图设计为将自己的DOM元素存储为视图的
属性 不建议按照Steven Farley的建议删除视图的元素,因为事件可能会绑定到它 最好的方法是将el
集合视图的
标记名
属性更改为
ul
另请参见:问题的其他副本的可能副本:还有几十个其他副本,都有相同的问题和答案。我觉得有必要回答,因为集合模板这是解决此问题的正确方法吗?它有任何副作用吗?当要渲染到的DOM元素是现有区域时,这不起作用。jqueryui选项卡就是一个例子。如果您的ul已经在DOM中(动态渲染的区域),然后您希望li直接渲染到DOM中(无包装器),则设置collectionView标记名属性将不起作用。您的收藏将简单地由该标签包装。有时,我们需要能够将项目直接渲染到现有元素中。为什么这在木偶2.x中不再是一个选项?这是一个通过在1.x中设置collectionView的el属性来实现的选项。HierarchyRequestError我的第一直觉是,该区域在语义上不应该像“ul”标记那样具体。您可以将该区域设置为“div”,将collectionView设置为“ul”,而子对象可以再次设置为“li”。我不确定2.x中的当前状态,最近没有使用主干或木偶。
也就是说,如果你不想在每一个项目的“div”。尝试 添加 然后从项目模板中移除包装-