我们在 EBS 上托管了 jsreport 节点应用程序。我们从静态网站(内部托管)创建模板并使用 css 和 javascripts。在外部 javascript 文件中,我们使用的变量类似于 jsreport 所需的变量,即 {{variablename}} 不起作用。当我们在模板中添加 javascript 内联时,它可以工作。
我们知道应该有其他方法来指定它,但找不到它。
我们在 EBS 上托管了 jsreport 节点应用程序。我们从静态网站(内部托管)创建模板并使用 css 和 javascripts。在外部 javascript 文件中,我们使用的变量类似于 jsreport 所需的变量,即 {{variablename}} 不起作用。当我们在模板中添加 javascript 内联时,它可以工作。
我们知道应该有其他方法来指定它,但找不到它。
这行不通。jsreport 模板引擎只编译和处理 html 输出,而不是引用的脚本。
但是,您可以尝试这种方法:
在要放置外部脚本的模板内容中放置一个占位符。假设我们要放置内联 jquery
<script>
$$$myScript
</script>
<script>
$(() => {
alert('yes I have jquery inlined')
})
</script>
创建 jsreport自定义服务器脚本,该脚本下载您的外部脚本,在本例中为 jquery,并将占位符替换为其内容
var getReq = require('request').get
function beforeRender(req, res, done) {
getReq('https://code.jquery.com/jquery-3.1.0.min.js', (err, res, body) => {
req.template.content = req.template.content.replace('$$$myScript', body.toString())
done()
})
}
该脚本将在执行模板引擎之前运行,因此您现在可以在其中使用模板引擎标签。