尝试使用 Jade 作为默认模板来主干+express。
遵循教程 here (很棒的教程)
困惑:
许多关于backbone的教程都使用下划线模板或句柄来编译和渲染 View 。
我使用 Jade 作为默认模板引擎。我的问题是,如果我使用 Jade,那么我是否必须使用其他模板,例如 Handlebar 或下划线。如果不是,我怎样才能在 Jade 中实现以下目标
render: function() {
var template = $("#booktemplate").html();
var compiled = Handlebars.compile(template);
var html = compiled(this.model.attributes);
this.$el.html(html);
return this;
},
我的假设:我认为 Jade 和 Handle bar 都是模板系统,可以交替使用。是这样吗?
为什么不同时使用 Jade 和 Handlebar?我不想使用两种不同的语法
#{} from jade / {{}} from Handlebar
最佳答案
在浏览器上使用 Jade 并不是一件简单的任务。问题是 Jade 是为服务器端构建的,不支持浏览器。
这就是为什么您经常会看到人们使用两个模板引擎(如果他们使用 Jade)。其他一些人只是在任何地方使用 Handlebars 或 Underscore - 这更容易,因为在浏览器中工作的模板引擎应该在服务器上工作。但反过来并不总是正确的。
这里要注意的一点是,在开始使用模板引擎之前,请确保它支持您希望定位的环境。发动机方面有很多选择,这个网站可以帮助您找到您需要的配件:http://garann.github.io/template-chooser/
如果你真的喜欢 Jade,那么,你可以使用像 Browserify 这样的堆栈。和一些middleware (Jadeify)使其在预编译后工作。但是您需要接受 browserify 概念并接受每次都预编译所有内容。您可以查看此相关问题以了解更多详细信息:https://stackoverflow.com/a/6623561/1024223
关于javascript - Jade 与 Handlebars 的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19451554/