【问题标题】:Extjs callback function to controllerExtjs 回调函数到控制器
【发布时间】:2014-02-19 19:44:59
【问题描述】:

我有以下处理所有请求的基类

makeRequest: function(mydata) {
    Ext.Ajax.request({
        url: './handler.php',
        method: 'GET',
        scope: this,
        params: {
            data: mydata
        },
        callback: this.myResponse,
        success: function(xhr, params) {
            console.log('Success');
        },
        failfure: function(xhr, params) {
            console.log('Failure');
        }
    });
}

在我的控制器中

.............
requires: [
  'Test.libs.Request'
],

............
onItemClick: function() {
  var objCallback = Ext.create('Test.libs.Request', {
    scope: this
  });
  objCallback.makeRequest(1);
},

myResponse: function(options, success, response) {
    console.log(response);
}

成功执行后,如何将控制器的 myResponse 作为回调?

【问题讨论】:

    标签: extjs extjs4 extjs4.1 extjs4.2


    【解决方案1】:

    您需要传递 fn 和范围,例如:

    Ext.create('Test.libs.Request', {
        callback: this.myResponse
        scope: this
    }); 
    
    // You need to get a reference to those passed params inside your request method.
    Ext.Ajax.request({
        url: './handler.php',
        method: 'GET',
        scope: passedScope,
        params: {
            data: mydata
        },
        callback: passedCallback
    });
    

    【讨论】:

    • 目前,我将参数传递给 objCallback.makeRequest(1,this.myResponse,this) 用于回调和作用域,它可以工作。
    • 是的,可以的。
    猜你喜欢
    • 2012-04-14
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多