ExtJS 3.4 で使っていた Ext.data.Record の定義を ExtJS 6, 7 でそのまま使いたいとき。
もしくは横着したい人向け。
Ext.override(Ext.data.XmlReader, {
constructor: function(config) {
if(!config.model && config.fields) {
config.model = 'Model-' + Ext.id();
Ext.define(config.model, {
extend: 'Ext.data.Model',
fields: config.fields
});
}
Ext.data.XmlReader.superclass.constructor.apply(this, arguments);
}
});
Overrideした後は、XmlReader 使うときにこんな感じで定義する。
new Ext.data.XmlReader({
record: 'data',
rootProperty: 'data',
fields: [
{ name: 'RESULT' },
{ name: 'ID' }
]
});
モデル定義が無意味になるという点においては、負荷軽減とかコーディングコストとかその辺りからみると全く無意味なので、その辺も要注意。