2013-04-17 68 views
4

這與$ el.html和這個。$ el.append在渲染模板時有什麼不同嗎?我完全新的JS,骨幹網等。在當前的項目我的工作,我看到的東西一樣

this.$el.append(Project.Templates["template-library"](this.model)) 
外視圖

。在這種情況下,此模板用於模態視圖。然後說模態視圖有一行要顯示在模態視圖中的每個項目。然後對於每個行,模板得到如下呈現:

this.$el.html(this.template({ libraries: libraries.toJSON() })); 

這兩者之間是否有區別?爲什麼append()應該在某些情況下使用,而html()在其他情況下。

+0

我想有一個(html),只是用你得到的參數替換內容,另一個(追加)在最後添加參數。 –

回答

3

對我來說,這真的歸結爲你如何使用你的觀點'render方法。

有些人喜歡用renderinitialize的擴展,因爲它們只能使用一次,當視圖第一次出現在頁面上,並經常從initialize調用它。使用這種風格,您可以安全地使用append,而不用擔心無意中添加元素兩次,因爲渲染不會運行兩次。

或者,您可以設計render一次又一次地使用,無論何時視圖的元素需要以某種方式更改。骨幹很好地支持這種風格,例如。 this.model.on('change', this.render, this);。對於這種風格,append會很煩人,因爲您必須經常檢查元素是否已在append之前存在。相反html更有意義,因爲它消除了之前發生的任何事情。

1

使用.append()將允許您添加或追加一些東西到已經存在的對象。而是使用.html(),它會將整個對象更改爲新對象。

相關問題