覆盖ExtJS中的getState

时间:2014-08-04 10:31:08

标签: javascript extjs override state superclass

我正在制作一个自定义的stateProvider,我想为我的面板状态保存一些额外的东西。我读到这一点,为了做到这一点,你要做的是覆盖面板类的getState()函数,但一定要调用超类方法。我试过这样的事情:

initComponent: function () {
    Ext.apply(this, {
        getState: function() {
            this.superclass.getState.call();
            return {
                col: this.up().id,
                row: this.row,
                hidden: this.isHidden()
            };
        }
    });

    this.callParent(arguments)
}

但它似乎不起作用。我对如何应用超类方法感到困惑......

文档说明了关于组件getState()方法的以下内容:

实现更复杂状态的子类应调用超类的实现,并在保存此基本状态时将其状态应用于结果。

我错的任何想法?

1 个答案:

答案 0 :(得分:1)

  1. 直接在您的面板定义上覆盖getState
  2. 获取超级方法调用的结果并应用更改

    Ext.define('MyPanel', {
        ...
        getState: function() {
            var result = this.callParent(arguments);
            Ext.apply(result, {
                col: this.up().id,
                row: this.row,
                hidden: this.isHidden()
            });
            return result;
        }
    })