从现有的JS Node上下文中编译Jade

时间:2012-05-22 18:45:37

标签: templates node.js pug

我有兴趣使用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,这看起来像它应该是不必要的。

1 个答案:

答案 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>'

这就是你想要的吗?