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