2013-11-14 1 views
0

Я пытаюсь сделать так, чтобы после входа пользователя в систему, и они нажмут обновление, они останутся на одной странице. Однако прямо сейчас, когда пользователь вошел в систему и обновляет обновления, они отправляются обратно на экран входа в систему. Я знаю, что хранилище сеансов используется, пока браузер не закрыт, и это то, что мне нужно. Однако я не могу заставить его работать нормально.Как использовать sessionStorage в sencha?

модель

   Ext.define('MeterReadingsApp.model.Login', { 
      extend: 'Ext.data.Model', 
       config: { 

      fields: [{name: "username", type:'string'}, {name: "password",          
       type:'string'}], 

        identifier: 'uuid' 

       } 
      });  

магазин

Ext.define('MeterReadingsApp.store.Login', { 
       extend: 'Ext.data.Store', 
         //requires: ['Ext.data.proxy.SessionStorag'], 
         config: { 
        model: 'MeterReadingsApp.model.Login', 

         //sessionStorage.type: 
       proxy: { 
       //use sessionstorage if need to save data for that 
       //specific session only 
      type: 'sessionstorage', 
        id : 'Login' 
      }, 
       autoLoad: false 
        } 
      }); 
     //var Login = Ext.create('MeterReadingsApp.store.Login'); 
      //Login.load(); 

app.js

launch: function() { 
    // Destroy the #appLoadingIndicator element 
    Ext.fly('appLoadingIndicator').destroy(); 
    var session=Ext.getStore('Login'); 
    session.load(); 
    var record = session.getAt('userName'); 
    alert(record); 
    if(record != undefined){ 
     //exits to main menus not login 
    } 
    else 
     Ext.Viewport.add(Ext.create('MeterReadingsApp.view.Login')); 



}, 

Контроллер

loginButton: function(){ 
// var me = this; 

    Ext.Ajax.request({ 
      useDefaultXhrHeader:false, 
      url: getLogonUrl(), 
      method: 'POST', 
      headers: { 'Content-Type' : 'application/x-www-form-urlencoded' }, 
      params : { 
      "userName": Ext.getCmp('username').getValue(), 
      "password": Ext.getCmp('password').getValue() 
      }, 


      success: function (response) { 
       Ext.getCmp('failLogin').hide(), 

      Ext.getStore('Login').sync(); 


       Ext.Viewport.setActiveItem({xtype: 'Main'}); 
       Ext.getStore('Campuses').load(); 


      }, 
      failure: function(response) { 
       Ext.getCmp('loginform').doSetHeight(250), 
       Ext.getCmp('failLogin').show(); 

      } 
     }); 
    }, 

Спасибо за помощь!

ответ

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^