访问jade模板中的数据(以生成静态html)
Getting access to data in jade template (to make static html)
我正在尝试将一些数据传递给jade模板以生成静态内容。我对node.js和express了解不多,我不把它们用作后端。我使用jade作为模板引擎并生成静态html。
玉石问题列表中有很多关于拥有多行代码的请求,所有者评论
我想提倡在模板、地图等中保留太多js可以通过本地暴露
如果模板中有很多逻辑或对象等,则应该在使用app.helpers()等时,它们仍然可以是仅查看的助手,但在至少它保持了模板更干净
我不太确定如何在一个咕哝的环境中做到这一点。基本上,如果我能访问我的jade模板中的javascript变量(可能是文本、js或json文件),那么我就可以使用模板中的数据并生成静态html文件。最好的方法是什么?
编辑
为了进一步澄清,我可能有类似(比如在json文件中)的数据
user1 = {link: '', lbl: 'User', txt: '.... lot 0f text ....'}
user2 = {link: '', lbl: 'User', txt: '.... lot 0f text ....'}
在我的mixin中,不知何故,我需要访问我的翡翠模板中的user1、user2等
.content
+colum(user1 )
+colum(user2 )
mixin colum(d)
.span4
h4
| #{d.lbl}
p
| #{d.txt}
非常感谢。
如果你想用grunt contrib jade来做,请尝试data
选项:
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"]
},
},
}
以下是上面的文档:https://github.com/gruntjs/grunt-contrib-jade#data
您可以使用#{your_variable}
希望这能有所帮助:翡翠公众APIhttps://github.com/visionmedia/jade#readme
更新:玩了一段时间后,我得到了这个:
var jade = require('jade');
// Compile a function
var fn = jade.compile('p= data');
console.log(fn({'data':'test'}));
当我运行这个代码时,我得到了:<p>test</p>
。以下是玉石的工作原理:
compile(jadeString)是一个函数,用于确定翡翠需要编译的字符串-jadeString
参数,您可以使用fs
模块加载翡翠模板的内容并将其放置在这里。fn(jsonData)是将jade模板实际编译为html的函数,jsonData是您想要在模板中使用的数据。
- 压缩静态HTML文件中的JS和CSS
- 静态html中图像之间的空间在javascript中消失
- Angular JS:翻译带有大量文本的静态html页面
- 使用Sails.JS为静态HTML/JS应用程序提供身份验证
- 在静态html页面中保存计数器
- 加载静态HTML文件并按类拆分为数组
- 将静态HTML页面转换为动态生成的jQuery
- 如何在PHP中包含动态Javascript页面的静态HTML结果
- 如何限制用户访问ExpressJS/NodeJS中的静态html文件
- 当 Express 发送带有参数的静态 html 文件时,路径不正确
- 我可以用angularJS/Jquery / Javascript对静态html表进行排序吗?
- 使用 Nodejs 和 grunt 来构建静态 html 文件
- 当 Angular 索引页面加载到 DOM [Angular 模板到静态 HTML] 中时,我可以拍摄它的纯 HTML
- 如何在 AngularJS 中生成的模板中添加静态 HTML
- 使用文本文件中的内容生成静态 HTML 页面
- 静态 HTML,想在轨道上使用 ruby
- 使用 get 变量缓存静态 HTML 页面
- 将静态 HTML 与 React 一起使用
- 在构建过程中从节点/快速视图呈现静态 HTML 文件
- 使用静态 HTML 或静态 DOM Javascript 设计页面