State.js 657 B

123456789101112131415161718192021222324252627282930
  1. Ext.define('uas.util.State', {
  2. singleton: true,
  3. requires: [
  4. 'Ext.util.LocalStorage'
  5. ],
  6. store: new Ext.util.LocalStorage({
  7. session: true,
  8. id: 'app-state'
  9. }),
  10. get: function(key, defaultValue) {
  11. var value = this.store.getItem(key);
  12. return value === undefined? defaultValue : Ext.decode(value);
  13. },
  14. set: function(key, value) {
  15. if (value == null) { // !== undefined && !== null
  16. this.store.removeItem(key);
  17. } else {
  18. this.store.setItem(key, Ext.encode(value));
  19. }
  20. },
  21. clear: function(key) {
  22. this.set(key, null);
  23. }
  24. });