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

Я также попытался с функцией document.write javascript, но результат остается тем же! –

+2

шаблон происходит на стороне сервера. Javascript происходит на стороне клиента. Вот почему это не работает. –

+0

нет, webapp2 с движком google app - python –

ответ

2

{% %} Шаблон магии исполняется перед javascript. Таким образом, вы, по сути, вводите html-код в свой javascript. {% %} выполняется на сервере (на стороне сервера) и отправляется в шаблон. Javascript выполняется после получения шаблона в браузере (на стороне клиента).

Это немного Hacky, но получает вокруг проблемы синхронизации:

<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

Извините, что на самом деле это было «Правда» в моем локальном хранилище. –

Смежные вопросы