[英]this.$el.html vs this.$el.append
渲染模板時,這個。$ el.html和這個.el.append之間有什么不同嗎? 我對js,骨干等全新。在我正在研究的當前項目中,我看到了類似的東西
this.$el.append(Project.Templates["template-library"](this.model))
在外部視圖中。 在這種情況下,此模板用於模態視圖。 然后說模態視圖在模態視圖中顯示每個項目的行。 然后,對於每個行,模板將呈現如下:
this.$el.html(this.template({ libraries: libraries.toJSON() }));
這兩者有什么區別嗎? 為什么在某些情況下應該使用append()
html()
,在另一種情況下使用html()
。
對我而言,這實際上取決於您如何使用視圖的render
方法。
有些人喜歡使用render
作為initialize
的擴展,因為當視圖首次出現在頁面上時,它們只使用一次,並且通常從initialize
調用它。 使用此樣式,您可以安全地使用append
而無需擔心意外添加元素兩次,因為渲染不會運行兩次。
或者,只要視圖元素需要以某種方式更改,您就可以設計render
以反復使用。 Backbone很好地支持這種風格,例如。 this.model.on('change', this.render, this);
。 對於這種風格, append
會很煩人,因為在append
它們之前你必須經常檢查元素是否已經存在。 相反, html
更有意義,因為它消除了以前的所有內容。
使用.append()
將允許您向現有對象添加或附加內容。 而是使用.html()
,它會將整個對象更改為新對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.