Sencha Touch 本地化存储配置

 1 Ext.define('SenchaTouch.component.Settings', {
 2     requires : ['Ext.data.Model', 'Ext.ModelManager', 'Ext.data.Store'],
 3 
 4     doDefine : function(key) {
 5         if (!Ext.ModelManager.isRegistered('Model' + key)) {
 6             console.log('define model: Model' + key);
 7             Ext.define('Model' + key, {
 8                 extend : 'Ext.data.Model',
 9                 config : {
10                     fields : ['id', 'value'],
11                     proxy : {
12                         type : 'localstorage',
13                         id : 'localSettings-' + key
14                     }
15                 }
16             });
17         }
18     },
19 
20     get : function(key) {
21         this.doDefine(key);
22 
23         var store = Ext.create('Ext.data.Store', {
24             model : 'Model' + key
25         });
26 
27         try {
28             store.load();
29         } catch(e) {
30             return undefined;
31         }
32         var data = store.getData();
33         if (data.items.length > 0) {
34             return data.items[0].data.value;
35         } else {
36             return undefined;
37         }
38     },
39     set : function(key, value) {
40         this.doDefine(key);
41 
42         var model = Ext.create('Model' + key, {
43             id : 1,
44             value : value
45         });
46 
47         model.save();
48     },
49     remove : function(key) {
50         this.doDefine(key);
51         var store = Ext.create('Ext.data.Store', {
52             model : 'Model' + key
53         });
54 
55         try {
56             store.load();
57         } catch(e) {
58             console.log('err');
59             return undefined;
60         }
61         var data = store.getData();
62         if (data.items.length > 0) {
63             data.each(function(record) {
64                 record.erase();
65                 record.destroy();
66                 return true;
67             });
68         } else {
69             return undefined;
70         }
71     }
72 });
原文地址:https://www.cnblogs.com/gibbon/p/SenchaTouch.html