Extjs4 Extjs 4扩展mdi应用程序
有没有办法将一个应用程序扩展到另一个mdi应用程序中? 例如,我有3个应用程序:“交易”、“销售订单”和“采购订单” 我想通过在“SalesOrder”和“PurchaseOrder”中扩展“Transaction”来重用它。Extjs4 Extjs 4扩展mdi应用程序,extjs4,mdi,extend,Extjs4,Mdi,Extend,有没有办法将一个应用程序扩展到另一个mdi应用程序中? 例如,我有3个应用程序:“交易”、“销售订单”和“采购订单” 我想通过在“SalesOrder”和“PurchaseOrder”中扩展“Transaction”来重用它。 什么是干净的方法呢?只需定义一个具有特定名称的应用程序,然后从中扩展 BaseApp.js: Ext.application({ name: 'BaseApp', launch: function () { alert("Base App
什么是干净的方法呢?只需定义一个具有特定名称的
应用程序
,然后从中扩展
BaseApp.js
:
Ext.application({
name: 'BaseApp',
launch: function () {
alert("Base App Launch");
}
});
Ext.application({
//extend from base app
extend: 'BaseApp',
name: 'ChildApp',
launch: function () {
alert("Child App Launch");
}
});
ChildApp.js
:
Ext.application({
name: 'BaseApp',
launch: function () {
alert("Base App Launch");
}
});
Ext.application({
//extend from base app
extend: 'BaseApp',
name: 'ChildApp',
launch: function () {
alert("Child App Launch");
}
});
是的,这是可能的,因为extjs4.2 查看“从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();