javascript - ExtJS - 我怎样才能有多个组件作为父母?
问题描述
首先,我使用的 ExtJS 版本是4.2 版本。
我有一个父组件,它有多个子组件(假设有 3 个子组件)从它扩展并因此对其进行修改。
我现在希望有一个新组件,它必须通过其他 3 个子组件之一(可以是其中任何一个),最后一个新组件调用的子组件将调用父组件。
解释这种情况有点困难,所以为了更好地可视化它,它会是这样的:
新组件_| > 子组件1 > | 父组件
______________| > 子组件2 > |
______________| > 子组件3 > |
父组件是子组件修改的简单弹出窗口。
新组件还旨在修改父弹出窗口,但它不能阻止子级也修改它。
如果我只有一个子组件,我会在新组件中简单地扩展它,仅此而已,但因为我有多个,我不确定最合适的行动方案应该是什么。
我想过尝试像动态扩展给定的孩子这样的事情,我不确定这是否可行。此外,在 Ext 中是否存在类似多个父母的情况?我是一个相对新手,所以我真的不知道。
任何帮助将不胜感激,如果您需要进一步澄清,请说出来。
解决方案
我认为你应该重新考虑你的结构。
首先,您不能动态更改/设置类继承。但我认为你的问题比看起来更简单。
如果我没看错,你就有一个包含一些字段或信息的父窗口(模式)。如果您调用三个子类中的任何一个,它会覆盖/扩展该父类,这意味着您可以忘记它。现在您只处理选定的子类。
我猜您在基本级别、网格或面板上有某种视图,然后调用该子类的单击事件。
所以我认为你正在寻找的是这样的:
Ext.define('App.ParentModal', {...});
Ext.define('App.Child1', {
extend: 'App.ParentModal',
...
});
Ext.define('App.MyPanel', {
...
items:[
{
xtype: 'button',
handler: function() {
if (condition1) {
Ext.create('App.Child1');
// call child1 that modifies parent the way you want
return;
}
if (condition2) {
Ext.create('App.Child2');
// call child2 that modifies parent the way you want
return;
}
}
}
],
...
});
我希望我能帮上忙。
推荐阅读
- php - 如何调试 Laravel 站点显示 HTTP 错误 500?
- c# - .NET API 文档与 DocFX - 如何在代码示例中正确显示方法调用
- javascript - webpack 的自定义错误:检查环境变量
- python - 无法使用 Python 从 JSON 字符串中提取键/值
- typescript - 打字稿 - 尝试在类中实现接口时出错
- java - 在 Spring 控制器中确定 URL 的 Ajax 调用后重定向到页面
- python - 如何在python中计算方程?(例如 2*2*2)
- python - How to edit a text file?
- javascript - 将 newsapi 中的文章标题存储到数组中
- c++ - Root - failed filling branch : memory-resident tree