在Jade Express中如何显示变量?

15

我正在尝试使用res.render来加载一些变量,代码如下:

res.render('blog_edit', {title: 'edit your blog', posts: "something"});

尽管标题加载正常,但帖子始终显示为未定义...以下是我尝试的一些方法...

=posts

#{posts}

并将其作为JavaScript变量

script   
   document.write(posts)

他们都不起作用...你能帮忙吗? 非常感谢


2
#{posts} 在 Express 3.x 中可用。 - rab
3个回答

21

尝试

  res.render('blog_edit', {locals:{title: 'edit your blog', posts: "something"}});

        #{locals.foo}

3
如果你查看https://github.com/visionmedia/jade下的“public api”部分,它会告诉你可以传递变量的方式(虽然不是非常清楚)。使用“locals”可能是最好的方法。 - Tegra Detra
如果我需要将相同的东西传递给一个ejs文件,它会报错"Uncaught SyntaxError: Unexpected identifier"。有任何想法是为什么? - vardha

7
我正在使用最新版本("express": "4.11.2", "jade": "1.9.2"),以下是适用于我的语法:

我今天使用的是最新版本("express": "4.11.2", "jade": "1.9.2"),这是对我有效的语法:

res.render('blog_edit', {title: 'edit your blog', posts: "something"});

在模板中:

#{locals.posts}

或者

#{posts}

Express 4.13和jade 1.11两种方式都对我无效。 - KhoPhi

0

这是对我有效的方法。

in JS
    res.render('index',  {email: req.params.email});

in Jade
   #{locals.email}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接