如何加载extjs需要的文件与php

how to load extjs require files with php?

本文关键字:文件 php extjs 何加载 加载      更新时间:2023-09-26

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