如何在没有express.js的情况下使用jade渲染partials?

问题描述:

只有信息,我发现是这样的:如何在没有express.js的情况下使用jade渲染partials?

http://forrst.com/posts/Node_js_Jade_Import_Jade_File-CZW

我复制了建议的文件夹结构(浏览次数/谐音),但它没有工作,只要我把

!=partial('header', {}) 
!=partial('menu', {}) 

成指数.jade,我得到了一个空白页面,我从玉收到错误消息是:

ReferenceError: ./views/index.jade:3 1. 'p index'
2. ''
3. '!=partial(\'header', {})'

partial is not defined

我会任何帮助非常感谢! (我强烈不喜欢使用express.js)

我认为部分渲染是用express来完成的,所以你将不得不扼杀那些代码或者写你自己的代码。

我有我自己的助手类玉石,您可以使用或here得到一些想法的谐音渲染,(它使用JooseCactus

+0

亚当嗨,什么是您使用链接的代码的方式吗?看起来这可能是我的问题的解决方案! – 2011-11-15 17:55:01

凭借最新的节点/表达我得到以下movies.jade模板来调用partials:

div(id='movies') 
    - each movie in movies 
    !=partial('movie', movie) 

其中我在movie.jade旁边的views目录中有movie.jade。

movies.jade从app.js调用:

res.render('movies', { movies: [{ title: 'Jaws' }, { title: 'Un Chien Andalou' }] });

玉有一个称为包括命令。只需使用

include _form 

鉴于部分的文件名是* _form.jade *,并且是在同一个目录

+0

感谢您指出这一点 – 2011-09-21 00:56:00

+2

包括大部分时间的作品,但不能做像递归包含这样的东西,因为它们包含在编译时。 – 2011-11-15 17:22:03

+0

你不会简单地在include中执行递归吗? – 2012-02-20 23:07:14

随着2012年8月(可能更早)局部模板已经从快速去除的。

很多教程现在已过时。看起来你可以用include来复制大部分的部分功能。

例如,

movies.jade

div(id='movies') 
    - each movie in movies 
    include movie 

movie.jade

h2= movie.title 
.description= movie.description 

HTH