2011-11-14 1 views
0

나는의 범위를 이해하는 문제가 javascript.Let의 가정하자 내가이 다음 코드 :extjs에서 클래스의 조부모 기능을 호출하는 방법?

Ext.define('MA.controller.user',{ 
    extend : 'Ext.app.Controller', 
    editUser:function(){}, 
    updateUser : function() { 
    Ext.Ajax.request({ 
     url : './editall', 
     callback : function(options, success, response) { 
     this.editUser(); 
     } 
    }) 
    }//eof init 
})//eof class 

당신이 볼 수 있듯이, this.editUser는() Ext.Ajax.request 및 updateUser

이에 중첩 .editUser()는 undefined를 반환합니다. 콜백 내부에서 editUser를 어떻게 호출 할 수 있습니까?

답변

1

범위 문제입니다. updateUser 메소드에서 스코프는 컨트롤러이므로 콜백 내에서 editUser를 호출하면 스코프를 ajax 요청에 추가합니다.

Ext.define('MA.controller.user',{ 
extend : 'Ext.app.Controller', 
editUser:function(){}, 
updateUser : function() { 
    //here this refers to the controller 
    Ext.Ajax.request({ 
    url : './editall', 
    scope: this, // add the scope as the controller 
    callback : function(options, success, response) { 
     this.editUser(); 
    } 
    }) 
}//eof init 
})//eof class