How do I render partials with jade without express.js?

…衆ロ難τιáo~ 提交于 2019-12-05 17:13:44

问题


Only info I found was this:

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

I replicated the suggested folder structure (views/partials) But it didn't work, as soon as I put

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

into index.jade, I get a blank screen, the error message I receive from jade is:

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

partial is not defined

I'd be very grateful for any help ! (I strongly prefer not to use express.js)


回答1:


I think partial rendering is done in express, so you will have to snag that code or write your own.

I have my own helper class for jade rendering with partials that you can use or get some ideas from here, (it's using Joose and Cactus)




回答2:


Jade has a command called include. Just use

include _form

given that the filename of the partial is *_form.jade*, and is in the same directory




回答3:


As of August 2012 (possibly earlier) Partials have been removed from Express.

A lot of tutorials are now out of date. It seems that you can replicate much of the partial functionality with include.

Eg.

movies.jade

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

movie.jade

h2= movie.title
.description= movie.description

HTH




回答4:


With the latest node/express I get the following movies.jade template to call partials:

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

where I have movie.jade in the views directory alongside movies.jade.

movies.jade is called from app.js with:

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



来源:https://stackoverflow.com/questions/5764693/how-do-i-render-partials-with-jade-without-express-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!