function localStorageServcie () {
'ngInject';
let ctrl = this;
/**
* 获取 localStorage
* @param key
* @returns
*/
ctrl.get = (key) => {
return localStorage.hasOwnProperty(key) ? localStorage.getItem(key) : null;
};
/**
* 写入 localStorage
* @param key
* @param value
*/
ctrl.set = (key, value) => {
localStorage.setItem(key, value);
};
/**
* 删除对应条目
* @param key
*/
ctrl.delete = (key) => {
delete localStorage[key];
};
/**
* 设置监听;注意,此处只能对一个元素设置监听;
* @param key - 写入的键名
* @param elem - jquery element
*/
ctrl.setWatch = (key, elem) => {
console.log('');// 占个位子做测试
$(window).bind('unload', () => {
ctrl.set(key, elem.val());
$(window).unbind();
});
};
}
export default angular
.module('localStorage', [])
.service('localStorage', localStorageServcie)
.name;
遇到一个奇怪的问题,本地调试下ok,能够正常存入localStorage
传到了服务器之后,如果将 ctrl.setWatch
中第一行的 console.log('');
删掉,就无法存入localStorage,留着就能存,不造是为什么呢,求解答!
用
$(window).on('beforeunload')
事件试试