0

アプリケーションを mdi の別のアプリケーションに拡張する方法はありますか? たとえば。「Transaction」、「SalesOrder」、「PurchaseOrder」の 3 つのアプリケーションがあります。「Transaction」を「SalesOrder」と「PurchaseOrder」で拡張して再利用したいと考えています。それを行うためのきれいな方法は何ですか?

4

2 に答える 2

1

application単純に、特定の名前で定義し、そこから定義することができますextend

BaseApp.js

Ext.application({
    name: 'BaseApp',
    launch: function () {
        alert("Base App Launch");
    }
});

ChildApp.js

Ext.application({
    //extend from base app
    extend: 'BaseApp',
    name: 'ChildApp',
    launch: function () {
        alert("Child App Launch");
    }
});
于 2012-11-11T11:22:24.680 に答える
0

はい、ExtJS 4.2 以降で可能です。

http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.app.Applicationのドキュメント セクション「Ext.app.Application からの派生」を確認してください。

以下に小さな例を示します。

Ext.define('Transaction.Application', {
    extend: 'Ext.app.Application',
    requires: [],

    // application namespace
    name: 'Transaction',

    // name of the app instance in DOM (e.g. Transaction.instance)
    //appProperty: 'instance',

    // application folder
    appFolder: '/js/Transaction',

    autoCreateViewport: true,

    controllers: [
    ],

    views: [
    ],

    launch: function() {
        console.log('application started');
    }
});

Ext.define('SalesOrder.Application', {
    extend: 'Transaction.Application',
    requires: [],

    // application namespace
    name: 'SalesOrder',

    // application folder
    appFolder: '/js/SalesOrder',

    autoCreateViewport: false,

    controllers: [
    ],

    views: [
    ],

    launch: function() {
        Ext.create('Ext.container.Viewport');
        this.callParent();
    }
});

Ext.define('PurchaseOrder.Application', {
    extend: 'Transaction.Application',
    requires: [],

    // application namespace
    name: 'PurchaseOrder',

    // application folder
    appFolder: '/js/PurchaseOrder',

    autoCreateViewport: false,

    controllers: [
    ],

    views: [
    ],

    launch: function() {
        Ext.create('Ext.container.Viewport');
        this.callParent();
    }
});

Ext.application('PurchaseOrder.Application');

// Then you can acces your application instance anywhere:
var app = PurchaseOrder.getApplication();
于 2013-10-13T08:23:32.807 に答える