我是 ext js 的新手,但通过了入门指南并设法创建了我自己的应用程序。
现在我正在为电子商务系统(商店软件)构建一个插件,并且需要动态扩展一个应用程序。
我设法通过猴子修补现有控制器来添加视图:
//{extends file="[default]backend/article/controller/main.js"}
//{namespace name=backend/article/view/main}
//{block name="backend/article/controller/main" append}
Ext.define('Shopware.apps.Article.controller.MyApp', {
override: 'Shopware.apps.Article.controller.Main',
openMainWindow: function() {
var me = this,
mainwindow = me.callOverridden();
oldTabCreation = mainwindow.createMainTabPanel;
mainwindow.createMainTabPanel = function() {
mainTab = oldTabCreation.apply(this);
mainTab.add(
Ext.create('Ext.panel.Panel',
{
title: 'Pricify',
layout: 'card'
})
);
return mainTab;
};
return mainwindow;
}
});
//{/block}
这行得通。我不确定这是否是首选方式,但视图会在正确的位置加载,我很高兴(因为这花了我几个小时)。
但还有一段路要走。
我将如何在这里注入整个逻辑?
我的要求是:
- 我需要一个控制器、一个视图和一个商店/模型
- 最好在自己的命名空间中
- 我想将我的类分成文件。
- 该文件必须位于插件文件夹中,而不是原始应用程序文件夹中。
我可以将代码附加到 app.js 文件中,但据我所知,我无法附加控制器和视图,也不知道如何自动加载文件。
有什么首选的方法吗?
编辑 我现在正在构建一个简单的应用程序,该应用程序之前已加载并尝试将随后可用的控制器注入应用程序。准备好后,我会回来报告。