我的应用程序中有几个商店。在我加载应该调用store.load()函数的网格之前,不会创建它们。因此,某些组件可能需要仍未创建的商店。我正在使用此功能来解决此问题:
getOrCreateStore: function(storeId, className){
return (Ext.getStore(storeId) == undefined) ? Ext.create(className) : Ext.getStore(storeId);
},
因此,每次组件都需要特定的商店时,我会在创建时调用,如果它不存在则创建它。
创建商店是否有更好的方法,以便我不必手动操作?我在ExtJS 4应用程序中设置了一些关于创建商店的配置吗?
为什么我使用上述修复,如果实际上没有先创建商店,则网格保持为空。
答案 0 :(得分:2)
请参阅http://docs-origin.sencha.com/extjs/4.2.2/#!/api/Ext.data.StoreManager
storeId
。 ||
操作。<强>代码强>
getOrCreateStore: function(storeId, className){
return Ext.getStore(storeId) || Ext.create(className, {storeId: storeId});
}
旁注: 我认为大多数Ext的经理都是不好的做法。它们只不过是美化的全球变量。我更喜欢绕过他们需要的商店,而不是将它们添加到全球状态。但是,我确实理解这使得编程在某些情况下更容易,并且如果你想要这种延迟加载的商店(我不确定这对你真的有什么好处),这就是你要走的路。我只是警告你,它往往会使维护和单元测试更加困难。