在Sencha Touch中使用的数据结构类似于Blackberry中的Vector

时间:2011-10-19 13:08:11

标签: sencha-touch extjs4 extjs sencha-touch-2

我是sencha Touch的初学者,基本上我是黑莓开发者。目前我们正在迁移我们的应用程序以支持Sencha Touch 1.1。现在我有一些业务解决方案,比如我想将所选值存储在本地数据库中。我的意思是我有多个屏幕,一旦用户在每个屏幕中选择一个值,数据应该以下面的格式保存。

[{'key1':“value1”,“key2”:“value2”,“key3”:“value3”,“key4”:“value4”,“key5”:“value5”}] < /强>

1。首先,需要将值保存在键值对

2。密钥应该扮演主键的角色,密钥不应该重复。

第3。应该在应用程序生命周期或应用程序会话之前可用,不需要永久保存数据。

我遇到过像LocalStorageProxy,JsonStore和其他一些概念。我不明白哪一个可以用于我的具体要求。

可能是我的问题有点混乱。我在Blackberry Java中实现了相同的使用向量,因此任何与此类似的数据结构都可以帮助我。需要像

这样的基本操作
  1. 创建
  2. 添加
  3. 删除
  4. 全部删除
  5. 根据键
  6. 获取元素

    请为我推荐一些示例或一些代码快照,这可能有助于我实现这一目标。

    修改:1

    我根据@ Ilya139的回答做了改动。现在我可以使用密钥

    添加数据
    // this is my Object declared in App.js
    NSDictionary: {},
    
    // adding the data to object with key
    MyApp.NSDictionary['PROD'] = 'SONY JUKE BOX';
    
    //trying to retrieve the elements from vector 
    var prod = MyApp.NSDictionary['PROD'];
    

    Nut无法使用上述语法检索元素。

1 个答案:

答案 0 :(得分:1)

如果您不需要永久保存数据,那么您可以拥有一个具有所需属性的全局对象。首先像这样定义对象:

 new Ext.Application({
    name: 'MyApp',
    vectorYouNeed: {},
   launch: function () { ...

然后将键值对添加到对象中,如下所示

 MyApp.vectorYouNeed[key] = value;

然后像这样获取它们

 value = MyApp.vectorYouNeed[key];

请注意,key是一个字符串对象,即var key='key1';,值可以是任何类型的对象。

删除一个值MyApp.vectorYouNeed[key] = null;并删除所有值MyApp.vectorYouNeed = {};