存储/列表不重新加载Sencha 1.1.1

时间:2013-11-25 15:21:01

标签: javascript extjs sencha-touch

我有一个手机包装的sencha touch(v1.1.1)应用程序,它有几个商店和一个列表。

“User1”登录后出现此问题,然后注销并以“User2”重新登录。该列表不会使用商店代理提取的新帐户数据进行刷新。

我正在尝试在List本身上调用.refresh(),根据文档,这也会导致商店刷新其数据(尽管如此,我还是手动执行此操作)

var sL = Ext.getCmp('AccountsList');
sL.refresh();
sL.scroller.scrollTo({x:0,y:0});

我们还尝试.sync()商店没有结果。

Ext.getStore('AccountsTransfersTo').sync();
Ext.getStore('AccountsTransfersFrom').sync();
Ext.getStore('AccountsStore').sync();

知道问题是什么,或者有没有人碰到类似的东西?

3 个答案:

答案 0 :(得分:3)

refresh不会重新加载商店,它只会抓取商店中的任何内容并重新呈现视图。

sync用于在您进行本地更改并将其发布到服务器后更新商店。

您需要在商店中调用load方法。

答案 1 :(得分:1)

这听起来像是一个缓存问题。或国家问题。 一条链接: http://html5wood.com/sencha-touch-difference-between-ext-get-and-ext-getcmp/

从页面: Sencha Touch:Ext.get()和Ext.getCmp()

之间的区别

重要说明:由于再次检索时的简单缓存,它返回相同的元素对象。这意味着它在第二次时间返回错误的元素。 Ext.fly()可以用来避免这个问题。

希望它有所帮助 麦克

答案 2 :(得分:0)

您可以每次加载商店

var sL = Ext.getStore('AccountsTransfersTo')
sL.load();
sL.scroller.scrollTo({x:0,y:0});

或者您可以尝试清除数据存储并重新加载

var sL = Ext.getStore('AccountsTransfersTo')
sL.removeAll();
sL.load();
sL.scroller.scrollTo({x:0,y:0});