2

您如何将 Store 实现为单例?

在 Architect 中,我的商店有一个属性复选框,用于添加属性

singleton: true,

如果我添加它然后重新加载它无法加载的应用程序(如果需要有关错误的信息,我可以提供更多详细信息)

Uncaught TypeError: object is not a function VM5238:3
(anonymous function) VM5238:3
Ext.ClassManager.instantiate ext-all-debug.js:5485
(anonymous function) ext-all-debug.js:2109
Ext.define.getStore

如果我然后删除该属性,它加载正常,但是在我使用 Ext.getStore("MyStore") 的地方然后返回的商店包含不同的数据,具体取决于我使用商店的位置。我有一个控制器,我在 getStore 方法中使用类名,这用于该控制器内的几个函数中。

此外,文档中似乎没有任何关于单例属性的文档。如果我查看 Ext.data.Store 没有单例。

4

1 回答 1

3

我建议您使用 ExtJS 方式来处理存储和存储实例...

storeId一起使用Ext.StoreManager。请注意,每个都storeId需要是唯一的,一旦您创建了商店的实例,它就会将自己注册到Ext.StoreManagerstoreId. lookup('storeId')您可以通过在上调用来获得商店Ext.StoreManager。是的,您可以从代码中的任何位置执行此操作。

例如,所有Ext.Components的 mixin Ext.util.Binable(它们是大多数(所有)绑定商店的本机组件)都可以使用storeId分配给storecfg 属性的字符串。Binable mixin 将在内部从 StoreManager 中查找它。如果你需要自己做

//...
store: Ext.StoreMgr.lookup('storeId') || Ext.create('YourStoreClassname')
//...
于 2013-12-05T10:18:10.457 回答