Вставьте переменные 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 в отдельный файл.