javascript - 在 Javascript 中插入 Jinja2 变量

标签 javascript html jinja2 morris.js

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

有什么方法可以在 JS 文件中包含这些函数并为它们提供 jinja 值吗?

我真的不想在 html 中有 onClick 或 JS 脚本,我希望所有 JS 都在单独的 JS 文件中,尽可能长。据我所知,我不能,因为这些变量是由引擎渲染​​的,但在我看来,导入 JS 文件的脚本也由 jinja 引擎渲染,所以我不太确定。

我认为通过 meta 传递数据标签可能是一种可能性,但我真的不想要任何 hack,如果我不能或没有“正确”的方法来做到这一点,我就不会这样做。

示例函数:

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 放在单独的文件中,我认为您可以将参数传递给您的函数。

关于javascript - 在 Javascript 中插入 Jinja2 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40865657/

相关文章:

python - Flask 无法导入枚举?未定义错误 : 'enumerate' is undefined

python - Jinja docx 模板,避免嵌套换行

html - OUTSIDE 边框仅适用于跨越多行的文本

c# - 允许用户自定义页面部分

javascript - 其他 Action 完成后进行 Action

javascript - 如何修复 "Expected to return a value at the end of arrow function"警告?

html - 为什么在提供 flex-basis 时 flex 元素不会转到下一行?

html - 为什么样式表只适用于索引页,而不适用于索引页的任何扩展? (使用 Jinja 的模板)

javascript - window.close() 在 android webview 中不起作用?

javascript - React ES6,如何将装饰器保存在单独的文件中