我在javascript中了解范围有问题。我想我有以下代码:
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
中this.editUser()将返回undefined。如何在回调中调用editUser?
答案 0 :(得分: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