首页 > 解决方案 > 有没有办法为特定的 xtypes/容器创建控制器?

问题描述

我有使用不同组件构建的表单,这些组件以不同的方式加载和编辑相同的记录。

总的来说,我有一个用于处理表单加载和保存的记录的视图控制器。所有表单都有一个“加载”和“保存”按钮,在这个“记录控制器”中处理。

但是,由于我创建的可用于查看记录的不同容器、一些分页或可扩展容器,我具有处理包含在 recordController 中的按钮“下一页”、“上一页”、“展开信息”的函数。

我想从 recordController 中删除这些功能“下一页”、“上一页”和“扩展信息”,并将它们放入特定于我为其制作的 xtype 的控制器中。这样,我可以创建具有相同功能的组件,而无需复制代码中的功能。

我知道我可以将这些功能放入所有其他控制器继承的“masterController”中,但是随着时间的推移,masterController 会增长并且可能变得难以管理/更改功能。理想情况下,两个控制器都不会从另一个控制器继承。

基本上我想要做的概念是:

Ext.define('CustomForm', {
     controller: 'recordController',
     items: [{
           xtype: 'tabpanel',
           controller: 'tabpanelController'
     }]
};

显然,上面的方法不起作用,但如果它在理想情况下在 tabpanel 中的函数调用将在前往 recordController 之前默认为 tabpanelController,而 tabpanelController 不会是记录控制器的后代。

有没有办法实现这个概念?

标签: extjscontrollerxtype

解决方案


推荐阅读