Jade和Handlebar之间的混淆

时间:2013-10-18 13:59:00

标签: javascript node.js backbone.js pug

尝试使用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

1 个答案:

答案 0 :(得分:3)

在浏览器上使用Jade并不是一项简单的任务。事情是Jade是为服务器端而构建的,不支持浏览器。

这就是为什么你经常会看到人们使用两个模板引擎(如果他们使用Jade)。其他一些人只会在任何地方使用Handlebars或Underscore - 这更容易,因为在浏览器中工作的模板引擎应该在服务器上运行。另一种方式并非总是如此。

这里要指出的是,在开始使用模板引擎之前,请确保它支持您希望定位的环境。在引擎方面有很多选择,这个网站可以帮助您找到您需要的一个配件:http://garann.github.io/template-chooser/

如果你真的喜欢Jade,那么你可以使用像Browserify这样的堆栈和一些middleware (Jadeify)来使它在预编译后工作。但是你需要购买browserify概念并接受每次预编译所有内容。您可以查看此相关问题以获取更多详细信息:https://stackoverflow.com/a/6623561/1024223