簡體   English   中英

這個。$ el.html與此。$ el.append

[英]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更有意義,因為它消除了以前的所有內容。

隨着追加一個新的元素將插入到$el ,而html將改變$el的內容。

使用.append()將允許您向現有對象添加或附加內容。 而是使用.html() ,它會將整個對象更改為新對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM