【问题标题】:ExtJS Direct--pass scope to methodExtJS Direct--将作用域传递给方法
【发布时间】:2015-06-08 16:09:36
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: java javascript extjs ext-direct


    【解决方案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); 
    

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

    做:

    console.log(this);
    

    关于你的回调函数。

    【讨论】:

      【解决方案2】:

      试试这个:

      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];
      }
      

      【讨论】:

      • @stackato 这将在 callbackLoadData 上可用,而不是在您的后端方法上
      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-20
      • 2015-11-04
      • 2011-01-01
      • 2021-04-25
      • 2014-06-03
      相关资源
      最近更新 更多