Вставьте переменные Jinja2 в Javascript

Я пытаюсь реорганизовать мой JS. У меня есть различные функции Morris.js внутри <script> в моем HTML-файле. Этот HTML-код отображается с помощью колбы. Данные из функций передаются непосредственно с сервера через систему шаблонов Jinja2.

Есть ли способ поместить эти функции в файл JS и дать им значения jinja?

Я действительно не хочу, чтобы в html были сценарии onClick и JS, я хочу, чтобы все 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']
            });
    }

Заранее спасибо.

1 ответ

Я думаю, что вы можете просто передать аргументы своей функции, если вы поместите свой js в отдельный файл.

Другие вопросы по тегам