Javascript 获取对jade模板中数据的访问(以生成静态html)
我试图将一些数据传递给jade模板以生成静态内容。我不太了解node.js和express,我不把它们用作后端。我使用jade作为模板引擎并生成静态html 在翡翠发行清单中有很多关于拥有的要求,并且所有者有意见 我想提倡不要让太多的js进入模板、地图等 可以通过当地人暴露 如果模板中有很多逻辑或对象等,您应该 在使用app.helpers()等时,它们仍然可以是仅查看帮助程序,但至少 至少它可以保持模板更干净 我不太清楚如何在环境中做到这一点。基本上,如果我可以访问jade模板中的javascript变量(可能是文本、js或json文件),那么我就可以使用模板中的数据并生成静态html文件。最好的方法是什么Javascript 获取对jade模板中数据的访问(以生成静态html),javascript,node.js,pug,gruntjs,Javascript,Node.js,Pug,Gruntjs,我试图将一些数据传递给jade模板以生成静态内容。我不太了解node.js和express,我不把它们用作后端。我使用jade作为模板引擎并生成静态html 在翡翠发行清单中有很多关于拥有的要求,并且所有者有意见 我想提倡不要让太多的js进入模板、地图等 可以通过当地人暴露 如果模板中有很多逻辑或对象等,您应该 在使用app.helpers()等时,它们仍然可以是仅查看帮助程序,但至少 至少它可以保持模板更干净 我不太清楚如何在环境中做到这一点。基本上,如果我可以访问jade模板中的javasc
编辑 为了进一步澄清,我可能有如下数据(比如在json文件中) 在我的mixin中,我需要访问jade模板中的user1、user2等
.content
+colum(user1 )
+colum(user2 )
mixin colum(d)
.span4
h4
| #{d.lbl}
p
| #{d.txt}
非常感谢。您可以使用以下工具在jade中呈现数据:#{your_variable}希望这有帮助:jade公共API 更新:在玩了一段时间后,我得到了:
var jade = require('jade');
// Compile a function
var fn = jade.compile('p= data');
console.log(fn({'data':'test'}));
当我运行这段代码时,我得到了:test
。下面是jade的工作原理:
complie(jadeString)是一个函数,用于确定jade必须编译的字符串-在
jadeString
参数中,您可以使用fs
模块加载jade模板的内容并将其放置在此处。fn(jsonData)是将jade模板实际编译为html的函数,jsonData是要在模板中使用的数据。如果要使用grunt contrib jade执行此操作,请尝试数据
选项:
jade: {
compile: {
options: {
data: function(dest, src) {
// Return an object of data to pass to templates
return require('./userData.json');
},
},
files: {
"dest.html": ["templates/*.jade"]
},
},
}
下面是上面的文档:我添加了一些说明。与其说如何使用变量,不如说是如何在非表达式/节点上下文中传递变量。谢谢,谢谢,瑞基。。我重新阅读了文档,偶然发现了
locals
选项。这个玉插件接受它。你用过吗?再次感谢如果JSON不是一个模块,我发现返回grunt.file.readJSON('userData.JSON')代码>在require()
会导致错误的地方工作:“错误:找不到模块‘userData.json’”。
jade: {
compile: {
options: {
data: function(dest, src) {
// Return an object of data to pass to templates
return require('./userData.json');
},
},
files: {
"dest.html": ["templates/*.jade"]
},
},
}