Дообогащения конфигурации в ExtJS

212
23 января 2019, 07:10

Столкнулся с проблемой дообогащения конфигурации в ExtJS.
Хочу в потомке добавить/изменить значение конфигурации, но родителю все равно приходит оригинальная конфигурация.

Пример:

Ext.define('test1', {
    extend: 'Ext.panel.Panel',
    config: {
        test: null,
    },
    constructor: function(config) {
        console.log("constructor.test1");
        console.log(config);
        this.initConfig(config);
        this.callParent();
    },
});  
Ext.define('test2', {
    extend: 'test1',
    config: {
    },
    constructor: function(config) {
            console.log("constructor.test2");
            this.initConfig(config);
            var innn = {
                test: 'aaaaaaaaaaaa'
            }
            var c = Ext.apply(config, innn);
            console.log(c);
            this.callParent(c);
    }
})
var exportfilterpanel = Ext.create('test2', {});
console.log(exportfilterpanel);

Выводит:

constructor.test2  
Object { test: "aaaaaaaaaaaa" }  
constructor.test1  
undefined  

А хочется:

constructor.test2  
Object { test: "aaaaaaaaaaaa" }  
constructor.test1  
Object { test: "aaaaaaaaaaaa" } 

Как быть?

Answer 1

Вот такое решение я нашел:

Ext.define('test1', {
    extend: 'Ext.panel.Panel',
    config: {
        test: null,
    },
    constructor: function(config) {
        var me = this;
        console.log("constructor.test1");
        this.initConfig(config);
        console.log(me.config);
        this.callParent();
    },
});  
Ext.define('test2', {
    extend: 'test1',
    config: {
    },
    constructor: function(config) {
        var me = this;
        console.log("constructor.test2");
        this.initConfig(config);
        console.log(me.config);
        var innn = {
            test: 'aaaaaaaaaaaa'
            }
        var c = Ext.apply(me.config, innn);
        console.log(c);
        this.callParent(c);
    }
})
var exportfilterpanel = Ext.create('test2', {'test':'init param', '1':'2'});
console.log(exportfilterpanel);
READ ALSO
Как прижать Элементы DIV-а к краю

Как прижать Элементы DIV-а к краю

Как прижать div и все его элементы к правому краю, и при скроле он шел за ним

166
Подсветка курсора по клику

Подсветка курсора по клику

Всем привет, у меня есть вот такая вот кнопка:

185
pagingtoolbar Duplicate id 1 for TestApp.model.City

pagingtoolbar Duplicate id 1 for TestApp.model.City

У меня есть родительский компонент с session: true

144