扩展ExtJs类时,配置对象将被新的替换。但有时我只想修改它们。
我举两个例子,如果可能的话,我想要一个通用的解决方案。
示例1.我有一个带工具栏和两个按钮的面板:
ExtJs.define('tbpanel', {
extends: 'Ext.panel.Panel',
tbar: [
{text: 'Add'},
{text: 'Remove'}
],
...
})
当我使用以下代码扩展它时,工具栏将被覆盖:
ExtJs.define('final', {
extends: 'tbpanel',
tbar: [
{text: 'Modify'}
]
})
如何扩展面板,使最后一个面板上有一个包含所有三个按钮的工具栏?
示例2:我有一个带有代理配置对象的商店,该对象具有多个属性,例如:
ExtJs.define('mystore', {
proxy: {
type: 'json',
writer: ...
reader: ...
}
})
当我像这样扩展它时,显然所有代理配置都会丢失:
ExtJs.define('myspecialstore', {
extends: 'mystore',
proxy: {
extraParams: {special: true}
}
})
如何以修改代理而非替换代理的方式扩展此商店?
我更喜欢通用的解决方案,而不是两个特定的解决方案。
答案 0 :(得分:1)
尝试使用类构造函数获取商店proxy
字段并在那里添加extraParams
。
constructor: function(config) {
this.proxy['extraParams'] = {special: true};
this.callParent(arguments);
}