Wer*_*001 5 parameters extjs store
我想在ExtJS应用程序中同时具有不同存储的相同视图的不同实例.目前,我在视口中停止了同一视图的多个实例(Ext.view.View).
但是,在每个视图中拥有不同商店的最佳做法是什么?我找到的每个示例都在使用控制器的stores-Config创建的视图中使用Store-ID.但是这会为每个视图使用相同的商店.
目前我想出了以下可能的解决方案:
这些解决方案中的任何一种都是最佳实践,还是应该以不同方式完成
控制器的存储数组的问题
是,它将覆盖任何storeId已定义的数组。加载 store 类后,控制器storeId通过命名空间约定设置,创建 store 并使用该值作为 .getter 方法来创建 getter 方法soreId。
让我介绍一下选项4
requires)。itemId ,这应该取决于视图(创建视图时设置!)。initComponent。storeId如果不存在,请创建它并提供客户配置和storeId.如果您每次都需要销毁视图和商店,请查看这篇文章
演示初始化组件
initComponent: function() {
var me = this,
storeId = me.storeId + me.itemId;
me.store = Ext.StoreManager.lookup(storeId);
if(me.store === null)
me.store = Ext.create('App.data.CustomViewStore',Ext.apply({storeId: storeId},me.storeCfg || {}));
me.callParent(arguments);
}
Run Code Online (Sandbox Code Playgroud)
注意:如果你用数组加载视图,views你最终会得到一个 getter,它可能不会给你你期望的视图。您也可以在这里使用控制器的 require 数组。如果您想使用 getter,只需使用refs配置创建您自己的 getter。
| 归档时间: |
|
| 查看次数: |
1048 次 |
| 最近记录: |