如何让“Ext.Ajax.request”中的变量成为全局变量?

时间:2012-11-14 06:50:18

标签: extjs

Ext.Ajax.request({
            url: 'a/b/c',
        success: function(response)
                {
                   var result = Ext.decode(response.responseText);
             if((result.a)==1)                            
              {
                 var value = result.a;
             }

                }
     });

如果我想“价值”成为我的全局变量。 我能怎么做 ? (PS:抱歉,我的英语不太好)

2 个答案:

答案 0 :(得分:0)

我认为您可以将 value 声明为全局变量,然后在成功函数中将result.a指定给它。

  var value;
  Ext.Ajax.request({
    url: 'a/b/c',
    success: function(response)
    {
          var result = Ext.decode(response.responseText);
          if((result.a)==1)                            
          {
             value = result.a;
          }

    }
  });

答案 1 :(得分:0)

taox的答案是正确的,但我会解释为什么它不起作用。

确保在请求发出后访问变量。请注意,请求是异步的。

var value;
Ext.Ajax.request({
    url: 'a/b/c',
    success: function(response){
          var result = Ext.decode(response.responseText);
          if((result.a)==1){
             value = result.a;
          }
    },
    callback: function(opt, succes, response){
        console.log(value); //value is now set
    }
});
console.log(value); //value isn't set

编辑:

在Javascript中创建一个全局变量:

<script type="text/javascript">
  var myValue = 'A1rPun'; //define variable
  function getValue()
  {
      console.log(myValue) //outputs "A1rPun"
      console.log(window.myValue) //outputs "A1rPun" (window is the topmost parent AKA global scope)
  }
</script>