【问题标题】:How to destroy stores in ExtJS 4.1?如何在 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 是否适用于商店并将它们从内存中删除?或者推荐的方法是什么?

【问题讨论】:

    标签: extjs datastore destroy extjs4.1


    【解决方案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;
            }
        }
    },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      • 2013-07-26
      • 1970-01-01
      相关资源
      最近更新 更多