41

在 Meteor 常见问题解答http://meteor.com/faq/how-do-i-package-a-new-templating-system中有一些关于添加不同(而不是默认 Handlebars)模板系统的信息。Jade 是文档中其他地方明确指出的唯一其他示例。

那么有人已经在研究 Jade 了吗?如果没有,我是否可以开始?还是现在还为时过早?例如:

包 API 正在迅速变化并且没有记录,因此您还不能制作自己的包。快来了。

我一直在尝试在我当前的 Ember.js 项目中喜欢 Handlebars,但对我来说,没有什么比 Jade 更优雅了。

4

5 回答 5

22

我们很想看到 Jade 的整合。用作packages/handlebars模板。

基本策略是将模板引擎的输出连接到Meteor.ui.render其中,这是我们实现实时页面更新的方式。只要您的模板返回 HTML,就可以。每当 Jade 模板引用Meteor.Collection文档或Session变量时,Meteor 都会注册该依赖项,以便知道在数据更改时重新渲染模板。

不过,更好的是也使用Meteor.ui.chunkand Meteor.ui.listChunk。这些将限制 Meteor 在发生更改时必须执行的重新计算量。例如,如果您使用{{#each}}Handlebars-speak 呈现文档列表,则当新文档进入结果集时,没有理由重新计算整个模板。我们只需为新文档渲染一个 HTML 块,并将其插入到 DOM 中。这是listChunk在行动。

因此,您可能会发现仅在 Jade 中使用if/unlessfor/可以让您走得更远。each

请注意,包开发不像系统的其他部分那样记录在案。因此,请随时提出更具体的问题。

于 2012-04-11T18:43:17.993 回答
16

流星 >= 0.8.0

官方推荐使用mquandalle:jade包 。

流星 <= 0.7.2

  1. 如果你使用 CoffeeScript,你应该看看jade-handlebars。在撰写本文时,有一个问题是 CoffeeScript 模板文件似乎需要包装在一个Meteor.startup函数中,这给我带来了其他问题。

  2. 如果您使用的是 CoffeeScript,您应该查看我的Cakefile。详细信息都在描述中,但简短的版本是它会自动添加/删除/更新 html 文件以及您的玉文件。我最终添加*.html到我的.gitignore,这仅在您不在同一个项目中混合 html 和 jam 时才有效。这有点像黑客,但到目前为止它对我来说工作正常。

于 2013-01-26T21:42:49.137 回答
10

只需在 Atmosphere 上发布我的第一个流星智能包!

使用 Jade+Handlebars 代替 HTML+Handlebars

https://atmosphere.meteor.com/package/jade-handlebars

于 2013-01-03T04:55:59.263 回答
3

刚刚让玉模板与我的 Meteor 项目一起工作!它是真正的翡翠,不是翡翠把手或半形翡翠。它很棒,但它需要 Meteor UI,它目前处于一个名为 blaze-rc1 的开发版本中。所以它目前不适用于 Meteor 0.7。

做'mrt添加玉'

&

使用“mrt --release blaze-rc1”运行你的流星项目

https://github.com/mquandalle/meteor-jade/

如果您在同一文件夹中有咖啡脚本和翡翠文件,请在文件名的开头添加 _,以便在咖啡脚本文件之前加载翡翠文件,否则将无法正常工作。

于 2014-03-14T06:20:10.873 回答
1

mrt add jade

client/views/templates/hello.jade你可以做这样的事情:

template(name="hello")
  h1 hello world!
  {{greeting}}

  input(type="button" value="click")

开始你的应用程序mrt

于 2014-04-25T18:45:49.893 回答