2011-09-07 17 views
4

瞭解backbone.js和不同的模板系統 我在想,將對象提供給模板進行渲染的最佳做法是什麼。將骨幹模型或導出的json對象傳遞給像鬍子一樣的模板系統

要麼通過在整個骨架模型 並使用<%= model.get( '姓名')%>

或通過model.toJSON() 和簡單地使用<%=名稱%>

使用這兩種方法之一的pro/con有什麼用途? 或者我可以選擇我認爲最有用的,而不必擔心取捨?

+0

取決於模板系統:)我使用jQuery模板,所以我必須使用更高版本。 –

回答

4

這一切都取決於你想要做什麼,真的。大多數模板系統允許您將任何javascript對象傳遞給模板,並調用該對象上的方法,屬性和其他位。

個人而言,我總是將model.toJSON()傳遞給模板。但我知道有幾個人總是將完整的model傳遞給模板,並像你展示的那樣給你打電話。

沒有多少折衷。任何一方都不會有性能損失。調用.toJSON()就是這麼快的調用,因爲它只是在幕後調用_.clone(this.attributes)。傳遞給JSON()的好處是您不必在模板中編寫額外的代碼。你可以直接指定屬性。傳遞完整模型的好處是你可以在你的對象上調用方法......但是我會認爲這是一件壞事,應該在你的視圖對象中完成方法調用,而不是模板......這是不過,這確實是一個意見問題。

+0

如果我在兩者之間有一個真正的選擇,而不用擔心折衷,我也會使用toJSON(),因爲我發現對於那些必須關注主題的同事更容易......他們不需要看到如果可能的話,所有的mutch javascript。我只是給他們提供了一個模板,它們可以使用所有變量,而只需要在<%=%>或{{}}之間打印出來,無論我使用哪種引擎。 – Sander