在jade模板中获取数据的访问(使静态html)
我正尝试将一些数据传递给玉模板来生成静态内容。 我对node.js不太了解,并且表示,我不把它们用作后端。 我使用玉作为模板引擎,并生成静态HTML。
在玉器问题列表中有很多关于有多行代码的请求,并且所有者评论
我想促进从模板中保留太多的js,地图等可以通过当地人暴露
如果模板中有很多逻辑或对象等,你应该使用app.helpers()等等,它们仍然可以是只能查看的助手,但至less可以保持模板清洁
我不太确定如何在一个基于grunt的环境中做到这一点。 基本上,如果我可以在我的模板中访问javascriptvariables(可能是文本,js或json文件),那么我可以使用我的模板中的数据并生成静态html文件。 做这个的最好方式是什么?
编辑
为了进一步澄清,我可能有像(在一个JSON文件中)
user1 = {link: '', lbl: 'User', txt: '.... lot 0f text ....'} user2 = {link: '', lbl: 'User', txt: '.... lot 0f text ....'}
在我的混合,不知何故,我需要在我的玉模板访问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}
希望这有助于:玉公开API https://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>
。 所以这里是玉如何工作:
jade.complie(jadeString)是一个函数,用于确定jade必须jadeString
哪个string – jadeString
参数,您可以使用fs
模块加载您的jade模板的内容并将其放置在此处。 fn(jsonData)是实际将jade模板编译成html的函数,jsonData是你想在模板中使用的数据。