Ничего не встроено в рамки. Существует ComponentLoader с компонентом рендеринга, но он предназначен для рендеринга компонентов внутри контейнера, а не для установки компонента.
Первое, что вы могли бы сделать, - это в своем методе конструктора запустить запрос синхронизации AJAX для получения объекта конфигурации и затем применить его к аргументу конфигурации:
...
constructor: function(config) {
var me = this;
Ext.Ajax.request({
url : 'something.php',
async : false,
params : {
componentId : 'something'
},
callback : function(opts, success, response) {
var json = response.responseJSON;
// or var json = Ext.decode(response.responseText, true);
Ext.applyIf(config, json); //or Ext.apply(config, json);
}
});
me.callParent(arguments);
},
....
Технически это должно остановить все, пока не вернется AJAX-запрос. Вам нужна обработка ошибок, конечно. Вы можете использовать Ext.applyIf, если хотите, чтобы объект конфигурации был основным, а объект json будет применяться, если ключ не имеет совпадения в объекте конфигурации. Ext.apply, если вы хотите просто перезаписать, если есть совпадения.