我有非常严格的 OOP flash 背景,我真的很想更深入地了解 Backbone ,我的问题是这样的:
如果我有所有 View 的类(就像在 Flash 中一样),那么 _.template 功能对我有什么用途/好处吗?或者我现在可以忽略它吗?
最佳答案
标记模板,无论是使用下划线还是任何其他模板框架,绝对是有用的。
您似乎将“查看类”和"template"视为某种非此即彼的命题。但事实并非如此。他们完全解决了不同的问题;它们相辅相成,而不是取代。
View 类(在您的例子中为Backbone.View
)范围并封装与 View 相关的逻辑和事件处理。这是很好的实践,无论您是否决定使用模板引擎,都应该使用它。
另一方面,模板只是将数据转换为 HTML,仅此而已。这是你的 View 需要做的事情,在我看来,有几种方法可以实现这一点:
- 通过字符串连接构建 HTML
-
"<div>" + this.model.name + "</div>"
...呃)
-
- 使用 jQuery 填充 DOM 节点
-
$(".name").text(this.model.name)
荒谬……
-
- 使用某种数据绑定(bind)
- 很好,但 Backbone 不支持开箱即用。
- 不过,插件确实存在( Backbone.ModelBinding 、 Rivets 、 Stickit ...)
- 使用模板引擎
- 比数据绑定(bind)更轻量、更简单
- 将表示与逻辑分开
选择是你的,但我不会没有数据绑定(bind)或模板框架。 underscore提供的模板很强大,但我更喜欢语义化、无逻辑的模板,例如 Handlebars .
关于javascript - 我需要下划线模板做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14397594/