0

我正在使用 ExtJS Direct 代理,需要知道在调用方法时如何传递作用域。目前我正在这样做

myapp.direct.action.mygridservice.getGridData("123",this.getSearchCbo().getValue(), function(p_,resp_){
          //do something
      }, this);  

在 java 方法中,我为范围添加了第三个参数,类型为 String,但我仍然收到“this”未定义的错误

谢谢

4

3 回答 3

1

1.- 您传递的范围参数不是到后端,而是到您的回调函数。(服务器端响应后执行的函数)

2.-如果你想向后端传递更多信息,它需要在回调函数和范围之前传入一个对象。

例子:

    var jsObject = {//put all the info you need to send to the server so you dont have 50 params}

    myapp.direct.action.mygridservice.getGridData("123",comboValue, jsObject someFunction, this); 

将其作为范围传递将使您能够访问一些否则将无法访问的变量。

做:

console.log(this);

在你的回调函数上。

于 2015-06-08T20:54:31.637 回答
0

试试这个:

loadData: function () {    
  RemoteManager.loadData(param1,param2, this.callbackLoadData, this);
},

callbackLoadData: function (result, e) {
   var t = e.getTransaction();
   var ctl = t.args[t.args.length - 1];
}
于 2015-06-08T16:19:10.547 回答
0

也许你应该包装你的回调函数。

检查此链接。

将额外数据传递给回调 https://www.sencha.com/forum/showthread.php?188184-set-scope-of-Ext.Direct-callback-handler

于 2015-06-08T16:27:34.557 回答