我尝试根据本地存储中特定密钥的存在来生成html内容。代码如下:
dl
即使本地存储中没有设置令牌密钥,也始终显示配置文件视图:
// Check if the user is signed in or not
if(localStorage.getItem("token") === null) {
document.getElementById("main").innerHTML = document.getElementById("welcomeview").innerHTML;
} else {
document.getElementById("main").innerHTML = document.getElementById("profileview").innerHTML;
}
为什么?
修改
使用AJAX请求的响应值设置令牌:
localStorage
Storage { token: "undefined", length: 1 }
答案 0 :(得分:1)
已编辑:请尝试设置项目localStorage.setItem("token", typeof undefined === data.token ? undefined : data.token)
。避免使用字符串"undefined"
。
我建议:
1)替换为if(localStorage.getItem("token")) {...}
3)另外,你可以通过三元运算符
来做你的例子var welcomeText = document.getElementById("welcomeview").innerHTML,
profileText = document.getElementById("profileview").innerHTML;
document.getElementById("main").innerHTML = (localStorage.getItem("token")) ? welcomeText : profileText
答案 1 :(得分:1)
您永远不会输入if
部分,因为"undefined" === null
始终为假。
您想在您的案例中检查if(localStorage.getItem("token") === "undefined")
。