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

nid*_*dHi 7 javascript python jinja2 flask

我用来python jinja2传递json到一个HTML文件中。I jsonpass 类似于下面,

result = { "config":{ "firstTitle" : "Report" } }
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

我尝试了各种方法来使其正常工作,不确定我哪里出错了,并且需要一些指导。

diz*_*zyf 7

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

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

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