2011-08-20 69 views
0

在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調用? –

回答

1

假設你在你的服務器設置提供商,其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

非常感謝您的幫助 –