将 Jinja2 数据发送到另一个 js 文件 -- flask



我有一个js文件,它用所有必要的参数绘制了一个函数。我希望在 html 中做这样的事情:

<script  src="js/index2.js" value = {{GraphData}}></script>

JS文件看起来像这样

var chart = AmCharts.makeChart("chartdiv", {
"graphs": [{
"id": "g3",
"valueAxis": "v1",
...
}],
"Data" = {{GraphData}} 
})

有没有办法将图形数据传输到 js 文件?

这里对脚本标签的功能存在根本性的误解。 "value"不是 HTML 脚本标记的有效属性,该标记用于将 JavaScript 文件的文本内容导入到 HTML 文件中。

要实现您想要的,您只需删除:

<script src="js/index2.js" value = {{GraphData}}></script>

并将其替换为要导入的内容:

var chart = AmCharts.makeChart("chartdiv", {
"graphs": [{
"id": "g3",
"valueAxis": "v1",
...
}],
"Data" = {{GraphData}}  
})

有关 HTML 脚本标记的更多信息,请参阅此处和此处。

如果要将此脚本保留为外部脚本,则可以使用它来定义一个将 {{GraphData}} 作为参数的函数,如下所示:

function graphData(gd) {
var chart = AmCharts.makeChart("chartdiv", {
"graphs": [{
"id": "g3",
"valueAxis": "v1",
...
}],
"Data" = gd  
});
}

然后在 HTML 文件中调用该函数,如下所示:

<script src="js/index2.js"></script>
<script>
graphData({{GraphData}})
</script>

最新更新