如何从HTML文件中分离HTML和显示内容?

我有一个代码如下:

var info = { "Company": "ABC", "Team": "JsonNode", "Number": 4, "Time": "1 day" }; var layout = "<ol><li>Info: </li><ol><ul>Company: {{info.Company}}</ul><ul>Team: {{info.Team}}</ul></ol><li>Number: {{info.Number}}</li><li>Time: {{info.Time}}</li><ol>"; function generatePdf(layout,info) { var wkhtmltopdf = require('wkhtmltopdf'); console.log('generating pdf'); wkhtmltopdf(layout, { //console.log('debug'); output: './file.pdf', "viewport-size": "1280x1024", "page-width": "400", "page-height": "600" }); } generatePdf(layout,info); 

现在我可以生成一个PDF文件,但PDF文件的内容是不正确的。 伊斯兰国:

  1. Info: Company: {{info.Company}} Team: {{info.Team}} 2. Number: {{info.Number}} 3. Time: {{info.Time}} 

我的问题是:

1:如何将HTML模板(var布局)分隔到一个文件。

2:info.Company必须是ABC,info.Number必须是4

请给我一个帮助!

请重新排列你的布局variables,并检查

 var layout = "<ol><li>Info: </li><ol><ul>Company:"+info.Company+"</ul><ul>Team: "+info.Team+"</ul></ol><li>Number:"+info.Number+"</li><li>Time:"+info.Time+"</li><ol>"; 

如果您的JavaScript在Node.js中运行,您可以使用

 var layout = require("./layout.json"); 

从文件中获得你的布局。 我想在你的web应用程序中使用angular来replace{{var}}的内容,但是如果你生成一个PDF,没有angular度来写这些值,这意味着你必须在JS中这样做

 layout.replace("{{info.Company}}",info.Company); 

我发现我的朋友的解决scheme:代码如下,它适用于我的情况。 他使用了swig,一个模板引擎:

 // get json object from json file var info = require('./data.json'); var wkhtmltopdf = require('wkhtmltopdf'); var swig = require('swig'); // Compile a file and store it, rendering it later var tpl = swig.compileFile('public/template.html'); var layout = tpl({ info: info}); function generatePdf(layout,info) { wkhtmltopdf(layout, {output: './file.pdf'}); } exports.create_pdf_file = function() { generatePdf(layout,info); } 

我发表回答。 也许有人需要它