Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从ExtJs中的回调中修改变量_Extjs_Extjs4.1_Extjs4.2_Extjs3_Extjs5 - Fatal编程技术网

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

无法从ExtJs中的回调中修改变量,extjs,extjs4.1,extjs4.2,extjs3,extjs5,Extjs,Extjs4.1,Extjs4.2,Extjs3,Extjs5,如何在下面的代码中从回调中修改变量“updated”的值 为什么变量“updated”未按以下方式修改(即每次调用函数时返回false) 不确定使用这段代码想要实现什么,但是由于store.load()是异步的(我假设您使用像ajax一样的远程代理),所以返回updated时不会加载store,所以它仍然是假的 如果您只想在加载存储时执行某些操作,可以在回调匿名函数中执行(或者将回调函数传递给updateData函数,并在回调?)中调用它) 如果要检查存储是否已加载,可以调用ExtJS 5+或检

如何在下面的代码中从回调中修改变量“updated”的值

为什么变量“updated”未按以下方式修改(即每次调用函数时返回false)


不确定使用这段代码想要实现什么,但是由于
store.load()
是异步的(我假设您使用像ajax一样的远程代理),所以返回
updated
时不会加载store,所以它仍然是假的

如果您只想在加载存储时执行某些操作,可以在
回调
匿名函数中执行(或者将回调函数传递给
updateData
函数,并在
回调
?)中调用它)

如果要检查存储是否已加载,可以调用ExtJS 5+或检查ExtJS 4的store
lastOptions
属性(如果存在,则您的存储至少已加载一次)


我没有看到足够的解决方案来解决
updateData
函数返回true。

我猜这个函数每次都返回false,因为
store.load()
(我假设您使用远程代理)是异步调用,您只需定义
update
变量,调用
load
并返回
update
变量。所以存储还没有加载,更新仍然是错误的。@SergeyNovikov是的,你说得对,我正在使用一个远程proxyWell,我描述了你的代码示例是如何实际工作的
updated
变量更改为true,但当调用
回调
函数时。@SergeyNovikov我如何从上述代码段返回true,因为它仍然返回false?您不能。在函数返回时,回调尚未触发。您可以使用调试器查看此行为。
updateData:function()
{
    var updated = false;
    var store = new Ext.getStore('MyStore');
    store.load({
        scope: this,
        callback: function(records, operation, success) {
         if(/*some condition*/){
            updated=true;   
          }
        }
    });

return  updated ;
}