在下文中,我尝试测试对象是否已存储在localstorage中,以及是否未使用初始变量填充它。
var TimerData = $localstorage.getObject("TimerData", "{}");
if(!TimerData.hasOwnProperty("timerState")) {
TimerData["timerState"] = "run";
TimerData["timeOutMode"] = false;
TimerData["timeOutStartDate"] = null;
console.log("test line", TimerData)
};
但是,尽管我之前用变量行填充了
{}
,但在“测试行”行运行控制台仍返回TimerData
。$localstorage.getObject
看起来如下:getObject: function(key, fallBack) {
return JSON.parse($window.localStorage[key] || fallBack);
},
我的猜测是该操作正在处理异步问题(从本地存储中获取数据需要更长的时间)。
如何克服?
最佳答案
Jakee1有一个正确的主意,但您询问了有关角度的问题...
代替var TimerData = $localstorage.getObject("TimerData", "{}");
我将首先创建本地存储,然后为其分配一个var。
$localStorage.$default({TimerData: {}});
var TimerData = $localStorage.TimerData;
如果不存在,这只会将localStorage设置为{}