2011-10-19 26 views
0

我是一個初學者,以sencha觸摸,基本上我是黑莓開發者。目前我們正在遷移我們的應用程序以支持Sencha Touch 1.1。現在我有一些商業解決方案,比如我想將選定的值存儲在本地數據庫中。我的意思是我有多個屏幕,其中,一旦用戶在每個屏幕中選擇一個值,數據應以下面的格式保存。在Sencha中使用的數據結構觸摸類似於黑莓中的Vector

[{ 'KEY1': 「VALUE1」, 'KEY2': 「VALUE2」, 'KEY3': 「值3」, 'KEY4': 「VALUE4」, 'KEY5': 「值5」}]

1.首先,值需要被保存在鍵值對

2.按鍵應發揮主鍵的作用,重點不應該被重複。

3.應用程序的生命週期或應用程序會話可用,不需要永久保存數據。

我遇到了像LocalStorageProxy,JsonStore和其他一些概念。我不明白哪一個我可以用於我的具體要求。

可能是我的問題有點混亂。我在Blackberry Java中使用vector實現了同樣的效果,所以任何類似於這個的數據結構都可以幫助我。需要像

  1. 基本操作創建
  2. 添加
  3. 刪除
  4. 刪除所有
  5. 獲取基於關鍵

元素請建議我一些樣品或一些代碼的快照,這可以幫助我實現這一點。

編輯: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']; 

螺母無法檢索使用上述語法元素。

+0

的你會得到一些錯誤?這是標準的Javascript字典對象。只要嘗試在螢火蟲控制檯,鉻控制檯或jsfiddle你會看到,這是工作。 'var obj = {}; obj ['s'] ='s'; obj ['s'];'還要注意'MyApp'應該是你的sencha touch應用程序的名稱,即'var App = new Ext.Application({name:'MyApp',' – ilija139

回答

1

如果您不需要永久保存數據,那麼您可以擁有一個具有所需屬性的全局對象。首先定義對象是這樣的:

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

的鍵值對。然後添加到對象這樣

MyApp.vectorYouNeed[key] = value; 

,並獲取他們這樣

value = MyApp.vectorYouNeed[key]; 

注意,關鍵是字符串對象即var key='key1';,值可以是任何類型的對象。

要刪除一個值MyApp.vectorYouNeed[key] = null;並刪除所有這些MyApp.vectorYouNeed = {};

相關問題