在extjs 4桌面示例中,app.js看起来像
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...
},
...................
所以是否可以设置require: [.... .在应用程序加载php?比如ajax调用之类的?
对
假设您的服务器中有provider.php
作为设置提供者,它输出json,那么您可以做一些像…
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);