ExtJS 继承配置
ExtJS inherit config
在 ExtJS 6.2 中,subclasses 是否继承父配置?
它似乎不适合我。
Ext.define('test1', {
config: {
test1: {
test1: ''
}
},
constructor(config) {
Ext.apply(this, config);
console.log(config);
},
});
Ext.define('test2', {
extend: 'test1',
config: {
test2: ''
},
constructor(config) {
this.callParent(config);
console.log(this.config);
},
});
Ext.create('test2', {
test1: {
test1: 'test1'
},
test2: 'test2'
});
而且在父构造函数上 config
似乎是 undefined
!
我希望在父 class 配置中定义的所有内容在子 class 中也可用。并且能够在创建子 class.
时设置父配置
一种解决方法是调用 Ext.apply(this, config);
不确定这是否是正确的解决方案。
Ext.define('test2', {
extend: 'test1',
config: {
test2: ''
},
constructor(config) {
this.callParent(config);
Ext.apply(this, config); // <-
console.log(this.config);
console.log(this.getTest1());
console.log(this.getTest2());
},
});
您必须初始化配置才能获取 ExtJS 典型配置。您在 test2.
中获得了所有配置
Ext.define('test1', {
config: {
test1: null
},
constructor(config) {
this.initConfig(config);
return this;
}
});
Ext.define('test2', {
extend: 'test1',
config: {
test2: ''
},
constructor(config) {
// == > config
this.callParent([config]);
// ==> her you can even use getTest1(), setTest1() (or test2)
}
});
Ext.create('test2', {
test1: {
test1: 'test1'
},
test2: 'test2'
});
在 ExtJS 6.2 中,subclasses 是否继承父配置?
它似乎不适合我。
Ext.define('test1', {
config: {
test1: {
test1: ''
}
},
constructor(config) {
Ext.apply(this, config);
console.log(config);
},
});
Ext.define('test2', {
extend: 'test1',
config: {
test2: ''
},
constructor(config) {
this.callParent(config);
console.log(this.config);
},
});
Ext.create('test2', {
test1: {
test1: 'test1'
},
test2: 'test2'
});
而且在父构造函数上 config
似乎是 undefined
!
我希望在父 class 配置中定义的所有内容在子 class 中也可用。并且能够在创建子 class.
时设置父配置一种解决方法是调用 Ext.apply(this, config);
不确定这是否是正确的解决方案。
Ext.define('test2', {
extend: 'test1',
config: {
test2: ''
},
constructor(config) {
this.callParent(config);
Ext.apply(this, config); // <-
console.log(this.config);
console.log(this.getTest1());
console.log(this.getTest2());
},
});
您必须初始化配置才能获取 ExtJS 典型配置。您在 test2.
中获得了所有配置Ext.define('test1', {
config: {
test1: null
},
constructor(config) {
this.initConfig(config);
return this;
}
});
Ext.define('test2', {
extend: 'test1',
config: {
test2: ''
},
constructor(config) {
// == > config
this.callParent([config]);
// ==> her you can even use getTest1(), setTest1() (or test2)
}
});
Ext.create('test2', {
test1: {
test1: 'test1'
},
test2: 'test2'
});