Jade / pug:将包含变量的html传递给模板

时间:2017-07-09 13:16:09

标签: javascript express pug

我正在开发基于keystone.js的应用程序。我希望最终用户能够创建基于变量更改的内容。例如,如果他们想要创建电子邮件模板,他们可以写:

  

嗨#{firstName},...

这将像普通的html一样传递给jade:

  

嗨#{firstName} ...

模板应将#{firstName}评估为相关名字。

我已尝试在玉石模板中实现此功能,如下所示:

//Jade template
.div
  p #{firstName}
.div
   !=html

p#{firstName}行打印firstName的值,但是!= html打印"嗨#{firstName},..."。

有什么我做错了或者这只是Jade不支持吗?

1 个答案:

答案 0 :(得分:0)

这是预期的行为。 !是一个转义字符,只希望文本不是变量。

你应该在nodejs中评估pug html,将这个字符串作为变量传递给pug模板。

nodejs代码

var pug = require('pug');
html = pug.render(html, {firstName:firstName});

pug代码

.div
  p #{firstName}
.div
   !=html