在下面我尝试测试一个对象是否已经存储在localstorage中,如果不是,用初始变量填充它。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);
},
我的猜测是,操作处理异步的问题(从localStorage的获取数据需要更长的时间)。
这怎么能克服?
'$ window'呢? '$ localstorage'? '$'字符是什么? –
可能与async无关。无论如何,本地存储应该是同步的。你有没有尝试添加更多'console.log'行? 'getObject'调用之后立即得到了什么? – light
如果你在jQuery变量中存储'localStorage'和'window',我的问题是“为什么”?如果没有,请删除'$',并确保'localStorage'上有适当的camelcasing。 –