extjs - Extjs 中的 Mixin 覆盖

标签 extjs mixins

有混合类将方法合并到目标类。我想知道合并过程何时开始?

我已经覆盖了 mixin 的一种方法,但它没有在目标类中被覆盖。所以我假设合并在覆盖之前进行。

Ext.define('Ext.container.DockingContainer',
...
Ext.define('Ext.panel.Panel',
...
Ext.override(Ext.container.DockingContainer

首先 ext.js 定义了 mixin,然后是目标类。当我覆盖 mixins 方法时,它不会影响目标类方法。那么如何解决这个问题呢?如何正确覆盖mixins方法?

最佳答案

我用这种方式覆盖了它:

Ext.define('Ext.overrides.container.DockingContainer', 
{    
    override: 'Ext.container.DockingContainer',
    getDockedItems: function(selector, beforeBody) 
    {
          ....
    }
}, function() {
        Ext.Object.each(Ext.ClassManager.classes, function(name, cls) {
            if (cls.prototype && cls.prototype.mixins && cls.prototype.mixins.hasOwnProperty("docking")) {
                cls.prototype.getDockedItems = this.prototype.getDockedItems;
            }
        }, this);
    }
);

关于extjs - Extjs 中的 Mixin 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42509619/

相关文章:

ruby - 我可以扩展 Ruby 类以动态地表现得像 OpenStruct 吗?

ruby - Objective-C 是否像 Ruby 一样支持 Mixin?

css - 有什么方法可以使类名与 CSS 自定义变量相同?

extjs - 将字段动态设置为 extjs 数据存储

extjs - Sencha Architect 卡在 Loading <MyProject>.. 永远

javascript - Extjs 5 store.load()

css - 使用 OR 运算符的 guard 更少

javascript - ExtJS 4.2.1 - 引用和 Controller 的问题

javascript - Sencha Ext Js 如何将对象添加到 Ext.grid.Panel

oop - 混合与继承