2013-07-12 111 views
0

我有一個小問題,如果你能幫助我,那將是很棒的。我不能將自己的ID插入本地存儲。sencha touch本地存儲插入ID

ext.define('EMC.model.ReferenceData', { 
    extend: 'Ext.data.Model', 

    config: { 
     identifier: { 
      type: 'simple' 
     }, 

     idProperty: 'Id', 

     fields: [ 
       {name: 'Id', type: 'string'}, 
       {name: 'Description', type: 'string'}, 
       {name: 'syncChangeVersion', type: 'integer', mapping: 'SysChangeVersion'}, 
       {name: 'TypeEnum', type: 'string'}   
     ]  


    } 
}); 

這是我的項目的一個模型,商店如下所示。

Ext.define("EMC.store.SyncReferenceData", { 
    extend : "Ext.data.Store", 
    requires : [ 'Ext.data.proxy.LocalStorage' ], 

    config : { 
     model : 'EMC.model.ReferenceData', 
     storeId : 'referenceStore', 
     sorters : 'Id', 


     proxy : { 
      type : 'localstorage', 
      id : 'reference_data' 
     }, 

     autoSync : true, 
     autoLoad : true 


    } 
}); 

這是我創建的用於使用控制器向本地存儲插入數據的短語。

var frmModel2 = Ext.create('EMC.model.ReferenceData',{ 
    Id : '13', 
    Description : 'lole', 
    syncChangeVersion : 0, 
    TypeEnum : '199' 
    }); 
    ReferenceStore.add(frmModel2); 
    ReferenceStore.sync();                     

但是,當我看到本地存儲它是空的。但是,如果我評論Id:'13',那麼它將添加到本地存儲的ID爲「ext-record-293」。 爲什麼我不能將自己的ID插入商店?

回答

0

嘗試這樣的..

Ext.define('EMC.model.ReferenceData', { 
     extend: 'Ext.data.Model', 

     config: { 
      dProperty : 'uniqueid', // dummy name(not a field) 
      clientIdProperty : 'Id', 

      fields: [ 
       {name: 'Id', type: 'string'}, 
       {name: 'Description', type: 'string'}, 
       {name: 'syncChangeVersion', type: 'integer', mapping: 'SysChangeVersion'}, 
       {name: 'TypeEnum', type: 'string'}   
      ]    

     } 
    });