如何在extjs中调用类的祖父表函数?

时间:2011-11-14 19:00:16

标签: javascript extjs scope extjs4

我在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?

1 个答案:

答案 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