-1

我们在 EBS 上托管了 jsreport 节点应用程序。我们从静态网站(内部托管)创建模板并使用 css 和 javascripts。在外部 javascript 文件中,我们使用的变量类似于 jsreport 所需的变量,即 {{variablename}} 不起作用。当我们在模板中添加 javascript 内联时,它可以工作。

我们知道应该有其他方法来指定它,但找不到它。

4

1 回答 1

1

这行不通。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()
    })
}

该脚本将在执行模板引擎之前运行,因此您现在可以在其中使用模板引擎标签。

游乐场现场演示在这里

于 2016-09-15T17:35:20.590 回答