现在我用
Ext.create('Ext.Viewport',{...});
创建extjs组件。
是否可以在ExtJS中创建远程json对象的组件,如下所示:
Ext.create('Ext.Viewport','http://blabla/viewport.js');
然后我可以在viewport.js中编写viewport config json对象。
答案 0 :(得分:0)
框架中没有内置任何内容。 ComponentLoader包含组件渲染器,但用于渲染容器内的组件,而不是设置组件。
你可以做的是构造函数方法中的第一件事,触发同步AJAX请求以获取配置对象,然后将其应用于config参数:
...
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请求回来。当然,您需要进行错误处理。如果希望config对象是主要的,则可以使用Ext.applyIf,如果密钥在config对象中没有匹配,则应用json对象。如果你想在匹配的情况下明确覆盖,请使用Ext.apply。