Хранение сессий Sencha Touch, сохранение и извлечение

Привет, я пытаюсь использовать хранилище сеансов javascript в своем приложении в sencha touch с моделью, после долгих поисков в Интернете мне совсем не повезло, пожалуйста, помогите, если можете, спасибо. Это мой код на данный момент.
Мой контроллер, функция onStorage работает, getStorage usession.load не загружается, вот и я застрял

Ext.define('SideMenu.controller.Menu', {
extend: 'Ext.app.Controller',
currView:'home',
requires: ['SideMenu.model.Mymdl'],
config: {
        refs: {
               btn_localstore:'#btn_localstore',
               btn_getlocalstore:'#btn_getlocalstore'                     
              } 
        control: {
                 btn_localstore:{
                 tap: 'onStorage' 
                 },
                 btn_getlocalstore:{
                 tap: 'getStorage' 
                 },                    
              },
        onStorage:function(){
                        //create model and store data
                         var myMod = Ext.create('SideMenu.model.Mymdl',{
                         brandName:'Nike Jordan',
                         brandCat:'Sneakers'        
                         });
                        myMod.save({
                          success:function(res){
                          console.log('saved to model : '+res.get('brandName'));
                              }
                            });              
               }, 
           getStorage:function(){
                var usession = Ext.ModelMgr.getModel('SideMenu.model.Mymdl');
                console.log('model is :'+usession);

                usession.load(0, {
                          scope: this,
                          success: function(model, opp) { 
                          console.log('passed '+model.get('brandCat'));
                              },
                failure: function(record, operation) {
                console.log('failed : '+operation);
               // Ext.Viewport.setMasked(false);
                //====================================================
               // alert('could not get session details');
                //====================================================  
                   }
                  });

     }
}


Моя модель

Ext.define('SideMenu.model.Mymdl', {
extend    : 'Ext.data.Model',
xtype    : 'Mymdl',
requires:['Ext.data.proxy.SessionStorage'],
id : 'Mymdl',
config: {
    fields: [ 
        'brandName',   
        'brandCat'    
    ]
     ,

     proxy : {
         type: 'localstorage',
         id  : 'mymdl'
     } 
}
});  


Мой app.js я исключил другие вещи dts, которые не нужны в этом случае

models: ['Mymdl'],
views: ['Main', 'Home'],
controllers: ['Menu'],

launch:function()
{
   Ext.create('SideMenu.model.Mymdl'); 
}

Ваш ответ будет оценен, спасибо


person Africa Matjie    schedule 17.10.2014    source источник


Ответы (1)


Вам нужно будет вызвать метод загрузки модели, используя идентификатор данных модели, которые вы хотите получить из локального хранилища.

Вы можете получить идентификатор из функции обратного вызова сохранения модели.

var modelId;
myMod.save({success:function(res){
              modelId = res.getId();
              console.log('saved to model : '+res.get('brandName'));
           }
          });  

Затем используйте этот идентификатор при загрузке модели:

SideMenu.model.Mymdl.load(modelId, function(record) {
    console.log('Brand: ' + record.get('brandName'));
}

Вы можете установить значение идентификатора непосредственно при сохранении модели. Это избавит вас от необходимости извлекать и сохранять автоматически сгенерированный идентификатор при каждом сохранении.

person Jeff Martin    schedule 17.10.2014
comment
Джефф Мартин, чувак, ты только что спас мне жизнь, чувак, большое спасибо, я боролся с этим два дня ... дсе, ребята, Сенча даже не смог мне помочь, к сожалению, я не могу проголосовать за мою низкую репутацию ... но спасибо бру, ты гений - person Africa Matjie; 20.10.2014
comment
еще одна вещь, как я могу установить значение идентификатора при сохранении модели. - person Africa Matjie; 20.10.2014
comment
Свойство идентификатора модели создается автоматически. Вы можете использовать model.set('id,[value]) для установки значения. - person Jeff Martin; 21.10.2014
comment
Спасибо за вашу помощь, очень признателен .. попробую - person Africa Matjie; 23.10.2014