访问Jinja模板值时使用JavaScript变量

时间:2017-05-03 11:27:25

标签: javascript templates jinja2

我正在使用python jinja2json传递到HTML文件中。 json我传递的内容与下面类似,

result = { "config":{ "firstTitle" : "Report" } }

在我的HTML文件中,我有一个javascript函数,如下所示,按预期工作,

    function dispDetails()
    {
        //This works as expected
        //It print 'Report' in the console
        console.log('{{ config.firstTitle }}');
    }

但如果我的javascript函数被修改为包含javascript variable,则代码会抛出错误,

function dispDetails()
    {
        //Error thrown : jinja2.exceptions.TemplateSyntaxError: expected name or number
        titleStr = "firstTitle";
        console.log('\'{{ config.'+titleStr+' }}\'');
    }

我已经尝试了各种方法让这个工作,不知道我哪里出错了,并且需要一些指导。

1 个答案:

答案 0 :(得分:2)

Jinja变量仅在渲染时设置,而您尝试做的事情是不可能的。

这是伪代码,但您可以使用jinja json声明一个js变量并访问:

var config = {{ config | tojson }};
function dispDetails()
{
    titleStr = "firstTitle";
    console.log(config[titleStr]);
}