Chargement du contenu de manière dynamique (panneaux) dans un Ext Js Fenêtre d'affichage

Eh bien en fait je cherche sur ce problème, j'ai de nombreux composants avec dinamic choses qui sont écrites dans le côté serveur avec PHP.

En fonction de l'utilisateur mes composants va changer, en fonction du rôle de l'utilisateur.

J'ai donc besoin de connaître toutes les façons/exemples/info sur la façon de le faire.

1 - j'ai utilisé la fonction de charge de EXTJS a, mais il est clairement dit que j'ai l'habitude de charger le script uniquement du texte brut.

2 - j'ai utilisé la fonction eval (), mais im un peu peur o cette approche, comme dans cet exemple caisse de mise en page de composant (statique)

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

                ]
            })

et de mettre à jour le contenu de la mise en page avec js fichiers écrits sur le serveur

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
            });
        }

de toute autre manière pour que cela soit fait, ce que je NE veux pas faire est de faire un million de différentes composantes et de les charger au moment de la connexion, comme beaucoup de gens semblent dire

OriginalL'auteur GumaTerror | 2010-09-15