尝试使用Jade作为默认模板的backbone + express。
按照教程here(精彩教程)
混乱:
许多关于骨干的教程使用下划线模板或手柄来编译和渲染视图。
我使用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和amp;车把?我不想使用两种不同的语法
#{} from jade / {{}} from Handlebar
答案 0 :(得分:3)
在浏览器上使用Jade并不是一项简单的任务。事情是Jade是为服务器端而构建的,不支持浏览器。
这就是为什么你经常会看到人们使用两个模板引擎(如果他们使用Jade)。其他一些人只会在任何地方使用Handlebars或Underscore - 这更容易,因为在浏览器中工作的模板引擎应该在服务器上运行。另一种方式并非总是如此。
这里要指出的是,在开始使用模板引擎之前,请确保它支持您希望定位的环境。在引擎方面有很多选择,这个网站可以帮助您找到您需要的一个配件:http://garann.github.io/template-chooser/
如果你真的喜欢Jade,那么你可以使用像Browserify这样的堆栈和一些middleware (Jadeify)来使它在预编译后工作。但是你需要购买browserify概念并接受每次预编译所有内容。您可以查看此相关问题以获取更多详细信息:https://stackoverflow.com/a/6623561/1024223