2012-04-05 5 views
0

Это может показаться странным, но из-за этой проблемы я ударяю голову в течение последних 2 часов. У меня есть функция, которая срабатывает, как только я нажимаю кнопку входа в систему, при нажатии она запускает запрос Ajax.Sencha Touch 2 - Изменение вида после Ajax.Request

onEnter: function() { 

     Ext.Viewport.mask(); 

     var email = Ext.getCmp('email').getValue(); 
     var pass = Ext.getCmp('pw').getValue(); 
     var consegui = 0; 

     Ext.Ajax.request({ 

     controller: 'AP4.controller.MainCont', 

      url: 'myurl', 
      method: 'POST', 
      callbackKey: 'callback', 
      jsonData:{"username":'user', "password":'pass'}, 


      success: function(result) { 
      //Se o webservice nao der erro ele entra aqui, nao quer dizer que tenha 
      //sido correctamente criado session 
      // Unmask the viewport 
      Ext.Viewport.unmask(); 
      Ext.Msg.alert("Login Done! Congrats!"); 
      Ext.Viewport.setActiveItem(this.getRegisto()); **//THIS LINE IS NOT WORKING** 

      },   
      failure: function(result){  
      Ext.Msg.alert("Username ou Palavra passe Incorrectas!");   
      }, 

     });  
}, 

По какой-то причине SetActiveItem не работает, и я не знаю почему. Может кто-нибудь мне помочь ?

+0

Вы получаете ошибку? – fuzzyLikeSheep

+0

информация не заполнена, что делает 'this.getRegisto()' return? –

+0

Пожалуйста, опишите «не работает» лучше. У вас есть ошибки Javascript? Проверьте консоль. – Jay

ответ

1

я думаю, что вы обращаетесь к this.getRegisto; функции в неправильном объеме, вы проверили this ключевое слово указывает на объект, который вы хотите в обратный вызов?

изменить сферу успеха обратного вызова вы можете просто добавить scope аргумент в Ext.Ajax.request вызова, как этот

Ext.Ajax.request({ 
    url: 'myurl', 
    method: 'POST', 

    success: function(result) { 
     // this will point to ViewPort object here 
    }, 

    failure: function(result){ 
     Ext.Msg.alert("Username ou Palavra passe Incorrectas!");   
    }, 

    scope : Ext.Viewport  // this is used just for illustration, please specify correct scope here 
}); 
+0

Спасибо! для вашей помощи! – Akash

0

Если Registo находится в вашем окне просмотра, почему бы не использовать setActiveItem (некоторый номер), как если бы Registro был первым элементом в вашем окне просмотра, тогда setActiveItem (0);