如何在 ExtJS 4.1 中销毁商店?
Posted
技术标签:
【中文标题】如何在 ExtJS 4.1 中销毁商店?【英文标题】:How to destroy stores in ExtJS 4.1? 【发布时间】:2012-05-18 12:33:06 【问题描述】:我曾经使用商店的autoDestroy
属性。清理内存资源。但我在 API 中找不到这个了。
我发现EXTJSIV-4844 - Ext.data.Store autoDestroy config is missing
列在4.1 RC1 Bug Fixes 中(尽管我在任何地方都找不到该错误的线索)。
现在在 RC3 中,该配置已从 API 中消失,并且不再位于源文件中。
我使用Ext.destroy
来查看视图,但从不使用商店。 API 描述Ext.destroy
方法here 的方式听起来像:“这个方法是为小部件设计的,但它会接受任何对象,看看它能做什么”。 - 换句话说,不是很确定。
有没有人碰巧知道Ext.destroy
是否适用于商店并将它们从内存中删除?或者推荐的方法是什么?
【问题讨论】:
【参考方案1】:Ext.data.Store.destroyStore 看起来像您要使用的方法。由于某种原因它是私有的(如果选中显示私有,它甚至不会显示在文档中)但看起来它具有与 3.4 的公共 Store.destroy http://docs.sencha.com/ext-js/3-4/#!/api/Ext.data.Store-method-destroy 相同的功能。在 4.x 中有一个 Store.destroy 方法,但这是完全不同的,不应该用于从内存中销毁存储。以下是http://docs.sencha.com/ext-js/4-1/source/AbstractStore.html#Ext-data-AbstractStore的来源:
// private
destroyStore: function()
var me = this;
if (!me.isDestroyed)
if (me.storeId)
Ext.data.StoreManager.unregister(me);
me.clearData();
me.data = me.tree = me.sorters = me.filters = me.groupers = null;
if (me.reader)
me.reader.destroyReader();
me.proxy = me.reader = me.writer = null;
me.clearListeners();
me.isDestroyed = true;
if (me.implicitModel)
Ext.destroy(me.model);
else
me.model = null;
,
【讨论】:
以上是关于如何在 ExtJS 4.1 中销毁商店?的主要内容,如果未能解决你的问题,请参考以下文章