基本上我正在尋找這個問題,我有許多組件與服務器端用PHP寫在服務器端。在Ext Js視口中動態地加載內容(面板)
根據用戶的不同,我的組件將根據用戶的角色進行更改。
所以我需要知道如何做到這一點的任何方式/示例/信息。
1-我使用了加載函數EXTJS,但它清楚地表明我不會加載腳本只是純文本。
2-我使用的eval(),但即時有點害怕O此方法中,像該例子中箱佈局組件(靜態)
var contentPanel = new Ext.Panel({
frame: true,
style: {marginTop: '10px'},
height: 315,
border: true,
bodyBorder: false,
layout: 'fit',
id: 'contentPanel'
});
var mainPanel = new Ext.Panel({
title: 'Panel Principal',
id: 'mainPanel',
border: true,
frame: true,
width: '50%',
style: {margin: '50px auto 0 auto'},
height: 400,
renderTo: Ext.getBody(),
items: [
{
html: '<a href="#" onClick="requestContent(\'panel1\');">Panel 1</a>'
},
{
html: '<a href="#" onClick="requestContent(\'panel2\');">Panel 2</a>'
},
contentPanel
]
})
和更新與寫在服務器上JS文件佈局的內容
function receiveContent(options, success, response)
{
var respuesta = response.responseText;
//console.log(respuesta);
eval(respuesta);
//console.log(options.url);
url = options.url;
url = url.substring(0,(url.search(/(\.)/)));
var contenedor = Ext.getCmp('contentPanel');
contenedor.removeAll();
var contenido = Ext.getCmp(url);
contenedor.add(contenido);
contenedor.doLayout();
}
function requestContent(panel)
{
//panel es el nombre del archivo que quiero
Ext.Ajax.request({
url: panel+'.js',
callback: receiveContent
});
}
任何其他方式爲此做什麼我不想做的就是讓一百萬個不同的組件,並在登錄時,許多人一樣加載它們都似乎說
抱歉 - 不知道爲什麼代碼標記不能用於我的文章,這意味着代碼的格式不能正確顯示...... – SW4 2010-09-16 10:15:45