我的HTML中有:
<div ng-hide="token">
Test
</div>
在我的控制器中:
$scope.token = localStorage.key;
但它总是返回假 (?) - 它不起作用。
如果我尝试这样做:
<div ng-hide="token()">
Test
</div>
在控制器中:
$scope.token = function(){
return localStorage.key;
}
它也不起作用。
为什么?
我该怎么做呢?
谢谢
您没有正确使用本地存储。正确的方法是:
$scope.token = localStorage.getItem(key);
同样,您setItem
放入某些内容,removeItem
稍后将其删除。
有关本地存储的完整文档:https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
localStorage 是一个键/值数组。
您可以使用:
window.localStorage.getItem('key');
window.localStorage.setItem('key', 'value');
window.localStorage.removeItem('key');
window.localStorage.length;
window.localStorage.key(n);
如果您需要在控制台中查看所需的值,请尝试使用它:
for (var key in localStorage){
console.log(key)
}
如果您尝试为令牌分配默认值,但仍然不起作用,则可能是范围问题。
看:
http://jsfiddle.net/hgjrmoru/145/
解决方案是这样的:
$scope.token = function(){
return localStorage.getItem('key');
}
这是所有其他选项的演示:
https://jsfiddle.net/morwin10/r0ue8qwp/