我正在开发一个基于keystone.js的应用程序。我希望最终用户能够创建根据变量更改的内容。例如,如果他们想要创建一个电子邮件模板,他们可以写:
嗨 #{名字},...
这将作为纯 html 传递到 jade 中,如下所示:
嗨#{名字}...
模板应将 #{firstName} 评估为有问题的名字。
我尝试在玉石模板中实现这一点,如下所示:
//Jade template
.div
p #{firstName}
.div
!=html
p #{firstName} 行打印 firstName的值,但 !=html 打印 "Hi #{firstName},..."。
我做错了什么,还是 Jade 不支持?
这是预期行为。 ! 是一个转义字符,只需要文本而不是变量。
你应该在 NodeJS 中评估 pug html,将此字符串作为变量传递给 pug 模板。
节点JS代码
var pug = require('pug');
html = pug.render(html, {firstName:firstName});
哈巴狗代码
.div
p #{firstName}
.div
!=html