2017-05-03 24 views
1

を使用してjsonHTMLファイルに渡しています。私が合格jsonは、私が期待どおりに動作され、以下のように、javascript機能を持っているJinjaテンプレートの値にアクセスする際にJavaScript変数を使用する

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

しかし、私のjavascript機能を含むように変更された場合、私のHTMLファイルで

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

以下のように似ていますjavascript variableコードがエラーをスローしています。

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

私はどこに間違っているのか分からず、同じことについていくつかのガイダンスが必要です。

+0

可能な複製(のhttp:/ /stackoverflow.com/questions/32390539/how-to-pass-javascript-variable-to-macros-in-jinja2-template) –

答えて

2

ジンジャ変数はレンダリング時にのみ設定され、実行しようとしているものは不可能です。

これは擬似コードですが、潜在的にあなたの神社のJSONとアクセスそれとjsの変数を宣言することができます:

var config = {{ config | tojson }}; 
function dispDetails() 
{ 
    titleStr = "firstTitle"; 
    console.log(config[titleStr]); 
} 
[Jinja2のテンプレートにマクロをJavaScriptの変数を渡す方法]の
+1

私は上記の修正を試みました。 'console.log(config.titleStr)'は定義されていないので、私のために働いた 'console.log(config [titleStr])'を返しました。お手伝いありがとう! – nidHi

+1

@nidHiああ、もちろん!それはそれをするだろう。私のjsは少し錆びています。私の答えを更新:) – dizzyf

関連する問題