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

时间:2016-03-27 15:37:15

标签: extjs extjs4.1 extjs4.2 extjs3 extjs5

如何在回调中的代码中修改变量'的更新值。

为什么变量'更新'没有按以下方式修改(即每次调用函数时它都返回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 ;
}

1 个答案:

答案 0 :(得分:1)

不确定你想用这段代码实现什么,但由于store.load()是异步的(我假设你使用像ajax这样的远程代理),当你返回updated时,不会加载存储它还是假的。

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

如果要检查商店是否已加载,您可以为ExtJS 5+调用isLoaded()或检查商店lastOptions属性(如果存在,那么您的商店至少加载了一次)属性对于ExtJS 4。

我没有看到<{1}}函数的足够的解决方案返回true。