2013-10-03 52 views
0

我是Sencha Touch/Architect的全新品牌,並試圖創建我的第一家商店。我有以下項目設置:Sencha建築師localstorage無法正常工作

商店

Ext.define('InkStudio.store.MyStore', { 
    extend: 'Ext.data.Store', 

    requires: [ 
     'InkStudio.model.activityLog' 
    ], 

    config: { 
     data: { 
      entryID: 1, 
      name: 'First', 
      event: 'First event' 
     }, 
     model: 'InkStudio.model.activityLog', 
     storeId: 'MyStore', 
     proxy: { 
      type: 'localstorage', 
      uniqueID: 'entryID' 
     } 
    } 
}); 

型號

Ext.define('InkStudio.model.activityLog', { 
    extend: 'Ext.data.Model', 

    config: { 
     identifier: 'uuid', 
     fields: [ 
      { 
       name: 'entryID', 
       type: 'auto' 
      }, 
      { 
       name: 'name', 
       type: 'string' 
      }, 
      { 
       name: 'event', 
       type: 'string' 
      } 
     ] 
    } 
}); 

然後我有一個測試下面的按鈕。該按鈕正在工作,我收到了「成功」消息,但是當我看着它或爲它捕獲文件時,數據從未實際顯示在商店中。

var store=Ext.getStore('MyStore'); 
if(store.add({name: "KITTY", event: "Clicked on the register"})){ 
    console.log("Successfully added"); 
}else{ 
    console.log("Failed to add"); 
} 
if(store.sync()){ 
    console.log("Successfully synced"); 
}else 
{ 
    console.log("Failed to sync"); 
} 

我是否缺少別的東西?

回答

2

使用data配置僅在您希望在視圖中顯示固定信息時使用。正確的是:

Ext.define('InkStudio.store.MyStore', { 
    extend: 'Ext.data.Store', 

    requires: [ 
     'InkStudio.model.activityLog' 
    ], 

    config: { 
     model: 'InkStudio.model.activityLog', 
     storeId: 'MyStore', 
     proxy: { 
      type: 'localstorage', 
      id: 'my-store-id' 
     } 
    } 
}); 

編輯店裏方法是異步,所以你需要使用的選項實際看到的變化。

var record = Ext.create('InkStudio.model.activityLog'); 
... 
//first we load our store. 
store.load({ 
    callback: function(records, operation, success) { 
    console.log('Store loaded...'); 
    //then we can add records 
    store.add(record); 
    store.sync({ 
     success: function(batch, options) { 
     console.log("Record saved..."); 
     }, 
     failure : function(batch, options) { 
     console.log("Error!"); 
     } 
    }); 
    } 
}); 
+0

塞爾吉奧,謝謝大家的響應。根據我發現的教程,我將數據作爲預先存在的數據測試。我已經刪除了數據並再次嘗試了一切,但仍然沒有顯示出來。基本上來測試它,我已經有了一切設置,然後我推動按鈕來觸發代碼,然後看看我的文件「KITTY」出現在商店,但它沒有。 –

+0

您還需要將代理從'uniqueID'更改爲'id'。此屬性名稱不存在,如果沒有id,您的本地存儲將無法工作。 –

+0

好吧,我刪除了uniqueID:'entryID'並將其更改爲id:'id'並且沒有任何更改,我也嘗試過id:'entryID',並且它沒有任何影響:( –

相關問題