|
|
|
@ -1,6 +1,7 @@ |
|
|
|
import Backbone from 'backbone'; |
|
|
|
import { Model } from 'backbone'; |
|
|
|
import { hasWin } from 'utils/mixins'; |
|
|
|
|
|
|
|
export default Backbone.Model.extend({ |
|
|
|
export default Model.extend({ |
|
|
|
defaults: { |
|
|
|
checkLocal: true |
|
|
|
}, |
|
|
|
@ -8,31 +9,28 @@ export default Backbone.Model.extend({ |
|
|
|
/** |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
store(data, clb) { |
|
|
|
this.checkStorageEnvironment(); |
|
|
|
|
|
|
|
for (var key in data) localStorage.setItem(key, data[key]); |
|
|
|
|
|
|
|
if (typeof clb == 'function') { |
|
|
|
clb(); |
|
|
|
store(data, clb = () => {}) { |
|
|
|
if (this.hasLocal()) { |
|
|
|
for (let key in data) localStorage.setItem(key, data[key]); |
|
|
|
} |
|
|
|
|
|
|
|
clb && clb(); |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
load(keys, clb) { |
|
|
|
this.checkStorageEnvironment(); |
|
|
|
var result = {}; |
|
|
|
|
|
|
|
for (var i = 0, len = keys.length; i < len; i++) { |
|
|
|
var value = localStorage.getItem(keys[i]); |
|
|
|
if (value) result[keys[i]] = value; |
|
|
|
load(keys, clb = () => {}) { |
|
|
|
const result = {}; |
|
|
|
|
|
|
|
if (this.hasLocal()) { |
|
|
|
for (let i = 0, len = keys.length; i < len; i++) { |
|
|
|
const value = localStorage.getItem(keys[i]); |
|
|
|
if (value) result[keys[i]] = value; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (typeof clb == 'function') { |
|
|
|
clb(result); |
|
|
|
} |
|
|
|
clb && clb(result); |
|
|
|
|
|
|
|
return result; |
|
|
|
}, |
|
|
|
@ -41,9 +39,9 @@ export default Backbone.Model.extend({ |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
remove(keys) { |
|
|
|
this.checkStorageEnvironment(); |
|
|
|
if (!this.hasLocal()) return; |
|
|
|
|
|
|
|
for (var i = 0, len = keys.length; i < len; i++) |
|
|
|
for (let i = 0, len = keys.length; i < len; i++) |
|
|
|
localStorage.removeItem(keys[i]); |
|
|
|
}, |
|
|
|
|
|
|
|
@ -51,8 +49,14 @@ export default Backbone.Model.extend({ |
|
|
|
* Check storage environment |
|
|
|
* @private |
|
|
|
* */ |
|
|
|
checkStorageEnvironment() { |
|
|
|
if (this.get('checkLocal') && !localStorage) |
|
|
|
console.warn("Your browser doesn't support localStorage"); |
|
|
|
hasLocal() { |
|
|
|
const win = hasWin(); |
|
|
|
|
|
|
|
if (this.get('checkLocal') && (!win || !localStorage)) { |
|
|
|
win && console.warn("Your browser doesn't support localStorage"); |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
}); |
|
|
|
|