2014-09-24 54 views
-2

如何在javascript函數中訪問flask.g變量。我可以直接在HTML中訪問它,例如{%if g.locale!='en'%}在javascript中訪問flask.g變量

+1

的Javascript運行在瀏覽器上,而不是在服務器上。你不能在瀏覽器上訪問'flask.g'。相反,在發送給瀏覽器的頁面中包含所需的數據。 – 2014-09-24 16:49:07

+0

這可能不是很好的做法。它是否需要綁定到'g'? – corvid 2014-09-24 23:36:42

+0

這不是,我現在明白了,在閱讀了Miguel的回覆之後。感謝 – Ryan 2014-09-25 12:17:20

回答

4

不幸的是,您不能在瀏覽器上訪問flask.g,只存在於服務器上。您可以做的最接近的事情是將您感興趣的g屬性作爲Javascript代碼寫入模板。例如:

<script> 
    var g_locale = "{{ g.locale }}"; 
    alert(g_locale); 
</script> 
+0

嗨米格爾,謝謝你的回覆。我能夠訪問變量。但是局部變量沒有得到全局變量的最新值 – Ryan 2014-09-24 21:23:36

+0

沒有「最新值」,到Javascript獲得這個值的時候'Flask.g'已經不存在了,'g'容器被創建並且作爲每個請求的一部分被銷燬。你得到的是模板渲染時'g'的值。 – Miguel 2014-09-24 22:34:22

+0

謝謝米格爾,我現在明白了。我試圖在模板的ajax調用後訪問它。 – Ryan 2014-09-25 12:11:10

0
<script> 
    var g_locale = {{ g.locale|tojson }}; 
    alert(g_locale); 
</script>