我有兴趣使用Jade创建动态生成数据的静态HTML文件。我已经有一组JS脚本在Node中运行时创建我的数据。我希望能够做的是计算我的数据,然后使用我创建的那些JS对象编译我的HTML页面。
e.g。
var myArry = MyLib.calculateSomeArray();
var myObj = MyLib.createSomeObj();
jade.compile(myTemplate);
玉模板:
each item in myArry
li= item
each val, key in myObj
li #{key}: #{val}
我假设这是其中一个很明显,我在文档中遗漏它的情况之一,但我没有看到它,我看到的最接近的答案似乎涉及Express,这看起来像它应该是不必要的。
答案 0 :(得分:6)
我会说,给定the docs:
var jade = require('jade');
// Create the function
var fn = jade.compile(myTemplate);
var html = fn({ myArry: myArry, myObj: myObj });
刚刚测试过,这很好用:
> var jade = require('jade');
undefined
> var myTemplate = "each item in myArry\n\tli= item\neach val, key in myObj\n\tli #{key}: #{val}"
undefined
> var myObj = { foo: 'bar', woo:'loo' };
undefined
> var myArry = ['moo', 'boo', 'roo'];
undefined
> var fn = jade.compile(tpl);
undefined
> fn({ myArry: myArry, myObj: myObj });
'<li>moo</li><li>boo</li><li>roo</li><li>foo: bar</li><li>woo: loo</li>'
这就是你想要的吗?