[英]What are el and $el in backbone's view?
我試圖避免在骨架中渲染視圖時用空div換行。 我用下面的代碼
this.$el.replaceWith(this.template(this.model.attributes));
return this;
但是當我通過添加此視圖時得到空的div
$("#product-pannel").append(productsView.render().el);
有人給這樣的解決方案
render: function(){
var html = this.template(this.model.toJSON()));
var newElement = $(html)
this.$el.replaceWith(newElement);
this.setElement(newElement);
return this;
}
但是我不明白為什么我要這么復雜地做上面,有人可以告訴我el
$el
的奧秘嗎?
el
指向view元素(保存其余模板的元素),而$el
是一個預設置el
元素的jQuery對象,因此您不必一直執行$(this.el)
。
文檔中明確提到了這一點。
您可以使用el
選項將現有的DOM元素指定為view元素,或主干為每個視圖創建DOM元素。 默認情況下,這將是<div>
。 如果您不想使用空的<div>
,則可以使用tagName
, attributes
等選項自定義元素主干,將其創建為視圖模板的頂級元素。
setElement
用於將視圖元素動態更改為其他元素...我很少( 或從未見過)實際使用過它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.