Extjs 回调函数到控制器

Posted

技术标签:

【中文标题】Extjs 回调函数到控制器【英文标题】:Extjs callback function to controller 【发布时间】: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 作为回调?

【问题讨论】:

【参考方案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) 用于回调和作用域,它可以工作。 是的,可以的。

以上是关于Extjs 回调函数到控制器的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS 4:存储数据未填充存储加载回调函数中的数据

ExtJS 4 存储回调函数不获取记录

如何在 ExtJs 中的回调函数后更改隐藏值

extjs中组件监听器里面的回调函数说明

无法从 ExtJs 的回调中修改变量

如何添加同步回调以存储在 ExtJS 中