javascript - 在 ExtJS 中重写 getState

标签 javascript extjs overriding state superclass

我正在制作一个自定义 stateProvider,我想为我的面板状态保存一些额外的内容。我读到,为了做到这一点,您所要做的就是重写面板类的 getState() 函数,但请确保调用父类(super class)方法。我尝试过这样的事情:

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)
}

但似乎不起作用。我对如何应用父类(super class)方法感到困惑......

文档对组件的 getState() 方法进行了以下说明:

实现更复杂状态的子类应该调用父类(super class)的实现,并将其状态应用于结果(如果要保存此基本状态)。

有什么我错的地方吗?

最佳答案

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

    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;
        }
    })
    

关于javascript - 在 ExtJS 中重写 getState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25116668/

相关文章:

javascript - Bootstrap 模式停止复选框选择

javascript - 获取此 javascript 中的标签

javascript - 如何防止用户使用 javascript 或 jquery 中键单击链接

ExtJS 6 plugin.rowwidget 在网格调整大小时调整行主体组件的大小

javascript - 防止制表符进入字段

Joomla:多次覆盖类别博客输出?

javascript - JQuery onpaste 事件限制用户粘贴字符,如 | , ./

java - 使用 Jersey 和 ExtJS 使用 JSON 的 Rest Web 服务

C++ 结合重载和覆盖导致奇怪的行为

python - 如何使用继承,我缺少什么?