javascript - 如何根据javascript中的条件渲染模板

标签 javascript google-app-engine local-storage conditional-statements webapp2

如何基于 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 控制台中给我错误

什么是最佳实践,提前致谢。

最佳答案

{% %} 模板魔法在 javascript 之前执行。因此,您实际上是将 html 代码注入(inject)到您的 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>

最好在服务器端检查登录情况。

关于javascript - 如何根据javascript中的条件渲染模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42032032/

相关文章:

javascript - 如何在 Firefox 中编辑函数 setItem?

javascript - 根据查询字符串将页面中嵌入的视频设置为自动播放或不自动播放?

javascript - 循环加载 jquery 并等待完成

javascript:单击按钮时移动图像

python - 表单返回奇怪的字符

javascript - LocalStorage 设置数组内的对象 Ionic List

javascript - IE 中的 CSS 3 文本阴影

java - appengine java 中的线程/后端

python - App Engine 单元测试 : ImportError: Start directory is not importable

javascript - 对象的循环属性