• 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 });
  • 相关阅读:
    Java三大主流框架概述
    ASP.NET的内置对象
    9月29
    第一章
    在java开发中,为什么要使用单例模式。。?
    《设计模式之禅》一书学习心得(连载中)
    网上的一些java算法题的个人练习笔记
    第四次作业
    看《构建之法》有感
    实验四
  • 原文地址:https://www.cnblogs.com/gibbon/p/SenchaTouch.html
Copyright © 2020-2023  润新知