将骨干模型或导出的json对象传递给像小胡子这样的模板系统

时间:2011-09-07 10:28:27

标签: javascript backbone.js template-engine mustache

了解backbone.js和不同的模板系统 我想知道,将对象提供给模板进行渲染的最佳做法是什么。

要么通过整个骨干模型 并使用<%= model.get('name')%>

或传递model.toJSON() 并简单地使用<%= name%>

使用这两种方法中的任何一种方法的优点是什么? 或者我可以选择我认为最有用的东西而不用担心权衡取舍吗?

1 个答案:

答案 0 :(得分:4)

这一切都取决于你想做什么,真的。大多数模板系统允许您将任何javascript对象传递给模板,并调用该对象上的方法,属性和其他位。

就个人而言,我总是将model.toJSON()传递给模板。但是我知道有些人总是将完整的model传递给模板,然后调用.get就像你正在展示的那样。

权衡利弊并不多。做任何一个都没有性能损失。调用.toJSON()是一个如此快速的调用,因为它只是在幕后调用_.clone(this.attributes)。传递给JSON()的好处是你不必在模板中编写额外的代码。你可以直接指定属性。传递完整模型的好处是你可以在你的对象上调用方法...但我认为这是一件坏事,并且方法调用应该在你的视图对象内完成,而不是模板......那是但真的是一个意见问题。