在Javascript中插入Jinja2变量

在Javascript中插入Jinja2变量,javascript,html,jinja2,morris.js,Javascript,Html,Jinja2,Morris.js,我正在尝试重构我的JS。我在html文件的中有各种Morris.js函数。此html由flask呈现。来自函数的数据通过Jinja2模板系统直接从服务器提供 有没有办法将这些函数放在JS文件中,并为它们提供jinja值 我真的不想让onClick或JS脚本出现在html中,我想让所有JS都出现在单独的JS文件中,只要有可能。据我所知,我不能,因为这些变量是由引擎呈现的,但在我看来,导入JS文件的脚本也是由jinja引擎呈现的,所以我不太确定 我认为通过meta标记传递数据可能是一种可能性,但我真

我正在尝试重构我的JS。我在html文件的
中有各种Morris.js函数。此html由flask呈现。来自函数的数据通过Jinja2模板系统直接从服务器提供

有没有办法将这些函数放在JS文件中,并为它们提供jinja值

我真的不想让onClick或JS脚本出现在html中,我想让所有JS都出现在单独的JS文件中,只要有可能。据我所知,我不能,因为这些变量是由引擎呈现的,但在我看来,导入JS文件的脚本也是由jinja引擎呈现的,所以我不太确定

我认为通过
meta
标记传递数据可能是一种可能性,但我真的不希望有任何黑客攻击,如果我不能或没有“正确”的方法来做,我就不会做

示例函数:

foo = function(){
        new Morris.Line({
              element: 'network-chart',
              data: [
              {% for load in node_statistics %}
                { y: {{load['time']}}000, a: {{load['b_sum_up']}}, b: {{load['b_sum_down']}}, c: {{load['b_max_up']}}, d: {{load['b_max_down']}} },

             {% endfor %}
              ],
              xkey: 'y',
              ykeys: ['a', 'b', 'c', 'd'],
              labels: ['sum up bandwidth', 'sum down bandwidth', 'max up bandwidth', 'max down bandwidth']
            });
    }

提前谢谢。

如果你将js放在单独的文件中,我想你可以将参数传递给函数。

这意味着通过html中的onclick传递数据,对吗?如果这是唯一的方法,我不会这么做。我不想在我的html中有JS