了解 backbone.js 和不同的模板系统 我想知道,将对象提供给模板进行渲染的最佳做法是什么。
要么传入整个主干模型 并使用 <%= model.get('name') %>
或者通过 model.toJSON() 并简单地使用 <%= name %>
使用这两种方法中的任何一种的优缺点是什么? 还是我可以选择我认为最有用的东西而不用担心取舍?
最佳答案
这一切都取决于你想做什么,真的。大多数模板系统允许您将任何 javascript 对象传递给模板并调用该对象的方法、属性和其他位。
就个人而言,我总是将 model.toJSON()
传递给模板。但我知道一些人总是将完整的 model
传递给模板并调用 .get 就像你正在展示的那样。
没有太多的权衡。做任何一个都不会影响性能。调用 .toJSON() 是一个如此快速的调用,因为它只是在幕后调用 _.clone(this.attributes)
。传递 toJSON() 的好处是您不必在模板中编写额外的代码。您可以直接指定属性。传递完整模型的好处是你可以在你的对象上调用方法......但我认为这是一件坏事并且方法调用应该在你的 View 对象内完成,而不是模板......那是不过,这确实是一个见仁见智的问题。
关于javascript - 将 Backbone 模型或导出的 json 对象传递给像 mustache 这样的模板系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7332361/