如何使用php加载extjs需要的文件?

问题描述:

在extjs的4桌面例如,app.js是貌似如何使用php加载extjs需要的文件?

Ext.define('MyDesktop.App', { 
    extend: 'Ext.ux.desktop.App', 

    requires: [ 
     'Ext.window.MessageBox', 

     'Ext.ux.desktop.ShortcutModel', 

     'MyDesktop.SystemStatus', 
     'MyDesktop.VideoWindow', 
     'MyDesktop.GridWindow', 
     'MyDesktop.TabWindow', 
     'MyDesktop.AccordionWindow', 
     'MyDesktop.Notepad', 
     'MyDesktop.BogusMenuModule', 
     'MyDesktop.BogusModule', 

//  'MyDesktop.Blockalanche', 
     'MyDesktop.Settings' 
    ], 

    init: function() { 
     // custom logic before getXYZ methods get called... 

     this.callParent(); 

     // now ready... 
    }, 
................... 

所以是有可能设置需要:[....]动态之前用PHP应用负载?就像可能用ajax调用什么的?

问候

+0

如果你加载上面的脚本,内嵌你的html /文件,那么是的。但是,如果您将它作为js文件加载,那么您可以使用ajax与json reader结合调用php文件。作为替代方案,您也可以使用PHP文件作为“javascript提供程序”,方法是使用类似于'这样您就可以拥有可重用的文件而不是加载几个文件。 – toopay

+0

感谢您的评论。这是加载为一个JS文件。任何想法如何做到这里面的ajax调用? –

假设你在你的服务器设置提供商,其outputing JSON,那么你可以这样做有provider.php ...

var setting1, setting2; // and so on 
var settingsStore = new Ext.data.JsonStore({ 
     proxy : new Ext.data.HttpProxy({ 
      url : 'provider.php', 
      method:'GET' 
     }), 
     fields : ['setting1','setting2'] 
    }); 
settingsStore.on('load',function(settingsStore,records,options) { 
    if (records.length > 0) { 
     setting1 = records[0].get('setting1'); 
     setting2 = records[0].get('setting2'); 
    } 
},this); 

// Now setting1 and setting2 variable contain your setting and available for used... 
Ext.define('MyDesktop.App', { 
extend: 'Ext.ux.desktop.App', 

requires:setting1, 
// ... and so on 

编辑: PHP文件例如

$settings = array(); 
$settings[0] = array(
    'setting1' => array(
     'Ext.window.MessageBox', 
     'Ext.ux.desktop.ShortcutModel', 
     'MyDesktop.SystemStatus', 
     'MyDesktop.VideoWindow', 
     'MyDesktop.GridWindow', 
     'MyDesktop.TabWindow', 
     'MyDesktop.AccordionWindow', 
     'MyDesktop.Notepad', 
     'MyDesktop.BogusMenuModule', 
     'MyDesktop.BogusModule', 
     'MyDesktop.Settings' 
    ), 
    'setting2' => array(
     'Ext.window.MessageBox', 
     'Ext.ux.desktop.ShortcutModel', 
     'MyDesktop.SystemStatus', 
     'MyDesktop.VideoWindow', 
     'MyDesktop.GridWindow', 
     'MyDesktop.TabWindow', 
     'MyDesktop.AccordionWindow', 
    ), 
    // and so on 
); 

Header('Content-Type: application/json'); 
echo json_encode($settings); 
+0

如果你不介意可以请告诉我什么是JSON输出到这个正确的格式?我试过这样,但没有工作$ responce-> data [] ['setting1'] =“['Ext.ux.desktop.ShortcutModel','MyDesktop.dtop_activity']”; echo json_encode($ responce); –

+1

看看上面的例子。 – toopay

+0

非常感谢您的帮助 –