2012-04-05 3 views
0

이 문제로 인해 이상하게 들릴지 모르지만 지난 2 시간 동안 내 머리를 두드리는 소리가 들릴 수 있습니다. 로그인 버튼을 누르면 트리거되는 함수가 있는데, 눌렀을 때 Ajax 요청이 시작됩니다.Sencha Touch 2 - Ajax 요청 후보기 변경.

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

처럼 Ext.Ajax.request 호출 scope 인수를 추가 할 수 있습니다 성공 콜백의 범위를 변경하려면? – fuzzyLikeSheep

+0

정보가 가득 차 있지 않다면,'this.getRegisto()'는 무엇을 반환합니까? –

+0

"잘 작동하지 않는다"고 설명하십시오. Javascript 오류가 있습니까? 콘솔을 확인하십시오. – Jay

답변

1

this.getRegisto; 기능이 잘못된 범위에있는 것 같습니다. this 키워드가 성공 콜백에서 원하는 개체를 가리키고 있습니까?

는 단순히 오류를받을 수 있나요이

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가 뷰포트에 있으면, Registro가 뷰포트의 첫 번째 항목 인 것처럼 setActiveItem (일부 숫자)을 사용하지 말고 setActiveItem (0);