玉器在meteor模板
在meteor常见问题http://meteor.com/faq/how-do-i-package-a-new-templating-system中,有一些关于添加不同(默认Handlebars)模板系统的信息。 Jade是其他文档中唯一明确指出的其他示例。
那么有人已经在翡翠工作了? 如果不是,我可以开始吗? 还是还为时过早? 例如:
包API快速变化,没有logging,所以你不能自己制作包。 快来了。
我一直试图在我当前的Ember.js项目中爱上把手,但是对于我来说,没有什么东西像玉石一样优雅。
我们很乐意看到Jade整合。 使用packages/handlebars
作为模板。
基本策略是将模板引擎的输出连接到Meteor.ui.render
,这是我们如何实现实时页面更新。 只要你的模板返回HTML,这将工作。 Meteor.Collection
Jade模板引用Meteor.Collection
文档或Session
variables时,Meteor都会注册该依赖关系,以便在数据更改时知道重新渲染模板。
更好的是,也使用Meteor.ui.chunk
和Meteor.ui.listChunk
。 这些将会限制Meteor在发生变化时所需重新计算的数量。 例如,如果您使用Handlebars中的{{#each}}
来呈现文档列表,则当新文档进入结果集时,没有理由重新计算整个模板。 我们只是为新文档渲染一个HTML块,然后将其插入到DOM中。 这是listChunk
的行动。
所以你很可能会发现, if
/ unless
和/或each
玉都让你在那里很长的路程。
请注意,软件包的开发不像系统的其他部分那样。 所以,不要犹豫,随时提出更具体的问题。
meteor> = 0.8.0
使用mquandalle:玉包已正式推荐 。
meteor<= 0.7.2
-
如果你不使用CoffeeScript,你应该检查出玉手柄 。 在写这篇文章的时候,有一个问题,CoffeeScript模板文件似乎需要被包装在
Meteor.startup
函数中,这对我来说也是一个问题。 -
如果你正在使用CoffeeScript,你应该看看我的Cakefile 。 细节都在说明中,但简短的版本是,它会自动添加/删除/更新HTML文件旁边的玉文件。 我最后添加
*.html
到我的.gitignore
,这只有在你不在同一个项目中混合使用html和jade时才有效。 这有点破解,但到目前为止它对我来说工作得很好。
只要在Atmosphere上发布我的第一个meteor智能包!
使用Jade +把手而不是HTML +把手
刚刚得到我的Meteor项目的玉模板! 而实际上玉不是玉手柄或者是玉的一半。 这是伟大的,但它需要目前在一个名为blaze-rc1开发版本的meteorUI。 所以目前它不适用于Meteor 0.7。
做'加玉'
&
用'mrt –release blaze-rc1'运行你的meteor项目
https://github.com/mquandalle/meteor-jade/
如果你在同一个文件夹中有coffeescript和jade文件,将_添加到文件名的开头,以便在coffeescript文件之前加载jade文件,否则它将无法正常工作。
mrt add jade
在client/views/templates/hello.jade
你可以做这样的事情:
template(name="hello") h1 hello world! {{greeting}} input(type="button" value="click")
开始你的应用与mrt