2011-04-23 101 views
10

只有信息,我發現是這樣的:如何在沒有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)

回答

1

我認爲部分渲染是用express來完成的,所以你將不得不扼殺那些代碼或者寫你自己的代碼。

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

+0

亞當嗨,什麼是您使用鏈接的代碼的方式嗎?看起來這可能是我的問題的解決方案! – 2011-11-15 17:55:01

2

憑藉最新的節點/表達我得到以下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' }] });

23

玉有一個稱爲包括命令。只需使用

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

9

隨着2012年8月(可能更早)局部模板已經從快速去除的。

很多教程現在已過時。看起來你可以用include來複制大部分的部分功能。

例如,

movies.jade

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

movie.jade

h2= movie.title 
.description= movie.description 

HTH

相關問題