0

基於JavaScript條件語句即如何根據條件在JavaScript

<script type="text/javascript"> 
    if(localStorage.getItem("signedIn")=="True"){ 
     {% include 'shared/headers/simple-header.html' %} 
    }else{ 
     {% include 'shared/headers/loggedin-header.html' %} 
    } 
</script> 

上面的代碼不工作如何呈現一個模板來呈現模板,它給我的錯誤在JavaScript控制檯

什麼最佳實踐,在此先感謝。

+0

我也嘗試過使用javascript的document.write函數,但結果保持不變! –

+2

模板發生在服務器端。 Javascript發生在客戶端。這就是爲什麼它不起作用。 –

+0

不,webapp2與谷歌應用程序引擎 - python –

回答

2

{% %}模板魔術在javascript之前執行。所以,你基本上是在你的javascript中注入html代碼。在服務器(服務器端)完成{% %},併發送到模板。在收到模板後,在瀏覽器(客戶端)中完成Javascript。

這是一個有點哈克,但周圍的計時問題得到:

<div id="simpleHeader" style="display:none;"> 
    {% include 'shared/headers/simple-header.html' %} 
</div> 
<div id="loggedInHeader" style="display:none;"> 
    {% include 'shared/headers/loggedin-header.html' %} 
</div> 

<script> 
    if(localStorage.getItem("signedIn")=="True"){ // if string "True", no quotes if Boolean True 
     document.getElementById("loggedInHeader").style.display = "block"; 
    }else{ 
     document.getElementById("simpleHeader").style.display = "block"; 
    } 
</script> 

會更好地檢查服務器端登錄。

+0

這是永遠不會成爲條件的一部分,但是當我通過發出警報來檢查「signedIn」的值時,它會說:True –

+0

也許它是一個布爾值,而不是字符串:'if(localStorage.getItem(「 signedIn「)== True){' – GAEfan

+0

對不起,我在本地存儲中確實是'真'。 –