2

我来自一个非常严格的 OOP flash 背景,我真的很想更深入地了解骨干,我的问题是:

如果我有所有视图的类(很像在 Flash 中),对我来说 _.template 功能有什么用途/好处,还是我现在可以忽略它?

4

2 回答 2

2

标记模板,无论是使用下划线还是任何其他模板框架,都是非常有用的。

您似乎将 View 类和模板视为某种非此即彼的命题。但事实并非如此。他们完全解决了一个不同的问题;它们相互补充,而不是替代。

视图类(Backbone.View在您的情况下)范围并封装了与视图相关的逻辑和事件处理。这是一种很好的做法,无论您是否决定使用模板引擎,都应该使用它。

另一方面,模板只是将您的数据转换为 HTML,仅此而已。这是您的视图需要做的事情,在我看来,有几种方法可以实现这一点:

  • 通过字符串连接构建 HTML
    • "<div>" + this.model.name + "</div>"...呃)
  • 用 jQuery 填充 DOM 节点
    • $(".name").text(this.model.name)荒谬的...
  • 使用某种数据绑定
  • 使用模板引擎
    • 比数据绑定更轻更简单
    • 将表示与逻辑分开

选择是你的,但我不会没有数据绑定或模板框架。underscore 提供的模板功能强大,但我更喜欢语义化、无逻辑的模板,例如Handlebars

于 2013-01-18T11:38:28.577 回答
1

如果您在视图中将 JSON 对象作为 HTML 输出,那么您可以从中受益。

根据我的经验,如果你打算制作一个不仅仅是基本的应用程序,而且它也将成长,那么模板化是一种很好的做法,可以在以后为你节省一些时间。

您可以在模板文档页面http://underscorejs.org/#template获取更多信息

于 2013-01-18T11:17:31.980 回答