无法从ExtJs中的回调中修改变量
如何在下面的代码中从回调中修改变量“updated”的值 为什么变量“updated”未按以下方式修改(即每次调用函数时返回false)无法从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+或检
不确定使用这段代码想要实现什么,但是由于
store.load()
是异步的(我假设您使用像ajax一样的远程代理),所以返回updated
时不会加载store,所以它仍然是假的
如果您只想在加载存储时执行某些操作,可以在回调
匿名函数中执行(或者将回调函数传递给updateData
函数,并在回调
?)中调用它)
如果要检查存储是否已加载,可以调用ExtJS 5+或检查ExtJS 4的storelastOptions
属性(如果存在,则您的存储至少已加载一次)
我没有看到足够的解决方案来解决
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 ;
}