ExtJs4从URL加载面板

时间:2011-09-21 06:11:18

标签: javascript extjs extjs4

在ExtJs 3x中这段代码

Ext.getCmp('specific_panel_id').load({
    url:'url_containing_scripts.htm',
    scripts:true, 
    params:{
        something:else
    }
});

适用于将内容从URL加载到特定面板...

但是它在ExtJs 4.x中不起作用。

3 个答案:

答案 0 :(得分:1)

这也有效:

Ext.define('EI.view.Viewport',{
extend: 'Ext.container.Viewport',
alias: 'widget.principal',

layout: {
    type: 'vbox',
    align: 'center',
    pack: 'center'
},

items:[
    {
        xtype: 'panel',
        title: 'Mi Documentacion',
        width: 800,
        height: 600,
        border: false,
        autoScroll: true,
        loader: {
            autoLoad:true,
            url :'http://localhost/docs/'
        }
    }

]

});

答案 1 :(得分:0)

加载方法已从ExtJs4中的Ext.panel.Panel中消失。作为一种解决方法,您可以尝试使用常规Ext.Ajax.request加载面板内容,并将这些内容设置为面板中的项目。

示例:

var itemsConfig;
Ext.Ajax.request({
url : 'url_containing_scripts.htm',
callback : function(options, success, response) {
        itemsConfig = Ext.decode(response.text);
    }
});
Ext.getCmp('specific_panel_id').add(itemsConfig);

url_containing_scripts.htm应该在面板上以JSON格式包含您想要的项目。

以同样的方式,您可以使用所需的所有初始配置设置加载整个面板。

答案 2 :(得分:0)

使用以下代码解决它:


dynamicPanel = new Ext.Component({
           loader: {
              url: 'url_containing_scripts.htm',
              renderer: 'html',
              autoLoad: true,
              scripts: true
              }
           });
Ext.getCmp('specific_panel_id').add(dynamicPanel);