Есть ли способ расширить приложение в другом приложении для mdi? Для примера. У меня есть 3 приложения: «Транзакция», «SalesOrder» & «PurchaseOrder» Я хочу повторно использовать транзакцию, расширив ее в «SalesOrder» & «PurchaseOrder». Какой чистый способ сделать это?Расширение Extjs 4 для mdi
0
A
ответ
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");
}
});
0
Да, это возможно, так как ExtJS 4.2.
Проверьте раздел документации 'Выведение из Ext.app.Application' в http://docs.sencha.com/extjs/4.2.2/#!/api/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();