如何破坏ExtJS 4.1中的商店?

Aci*_*ier 5 extjs datastore destroy extjs4.1

我曾经使用商店的autoDestroy财产.清理内存资源.但我再也找不到这个了.

我发现EXTJSIV-4844 - Ext.data.Store autoDestroy config is missing4.1 RC1 Bug修复中列出了(虽然我无法在任何地方找到该bug的线程).

现在在RC3中,配置已从API中消失,并且它不再存在于源文件中.

我已经习惯Ext.destroy了观点,但从未用于商店.API在这里描述Ext.destroy方法的方式听起来像是:"这个方法是为小部件设计的,但它会接受任何对象,看看它能做什么". - 换句话说,不是很确定.

有没有人碰巧知道是否Ext.destroy适用于商店并将其从内存中删除?或者推荐的方法是什么?

pll*_*lee 8

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;
        }
    }
},
Run Code Online (Sandbox Code Playgroud)