0

我使用过使用基于 DOM 的模板的 angular 以及使用基于字符串的模板的 Ember。但我从来没有在骨干上工作过。谁能告诉我它使用哪种模板方法?

4

2 回答 2

1

Backbone.js 是一个适用于任何模板系统的 MV* 框架。通常,您将使用 Underscore 库为简单的应用程序创建模板。Underscore 库是 Backbone 的依赖项,因此它始终可用于您的 Backbone.js 应用程序。

Underscore.js 的新替代品刚刚发布,名为“Lo-Dash”,其唯一目的是完全取代 Underscore.js。它还有一个模板系统,您可以在 Backbone.js 应用程序中使用它。只需放入 Lo-Dash,删除下划线即可无缝运行。当 Lo-dash 使用 Backbone.js 进行测试时,所有的单元测试都通过了,这意味着它是一个完美的 Underscore.js 替代品。Lo-Dash API 在编写时也考虑到了性能,因此它用更好的高性能模式(如“for 循环”等)替换了速度较慢、笨重的 JS 模式……此外,它还提供了下划线所不具备的 30 种附加功能。 自己检查一下:http: //lodash.com/

在您检查了 Lo-Dash 之后,仍然需要比我检查的其他一些模板系统更多的东西,例如:Handlebars.js、Mustache.js、Jade、Haml-js 等...

于 2013-11-10T04:20:50.207 回答
1

Backbone 不会强迫您使用任何特定的模板引擎,您可以使用您想要呈现的模板。

以您认为合适的方式渲染 UI。Backbone 不知道您是否在渲染函数中使用 Underscore 模板、Mustache.js、直接 DOM 操作、服务器端渲染的 HTML 片段或 jQuery UI。有时您会为每个模型创建一个视图……有时您会在一个紧密的循环中同时渲染数千个模型。两者都适用于同一个应用程序,具体取决于所涉及的数据量和 UI 的复杂性。

(来源:http: //backbonejs.org/#FAQ-tim-toady

Backbone 与您首选的 HTML 模板方法无关。您的渲染函数甚至可以将 HTML 字符串组合在一起,或者使用 document.createElement 生成 DOM 树。但是,我们建议选择一个不错的 JavaScript 模板库。Mustache.js、Haml-js 和 Eco 都是不错的选择。因为 Underscore.js 已经在页面上,_.template 是可用的,如果您喜欢简单的插值 JavaScript 样式模板,它是一个很好的选择。

(来源:http: //backbonejs.org/#View-render

(rtfm!)

于 2013-11-07T09:47:55.957 回答