Столкнулся с проблемой дообогащения конфигурации в 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" }
Как быть?
Вот такое решение я нашел:
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);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как прижать div и все его элементы к правому краю, и при скроле он шел за ним
У меня есть родительский компонент с session: true