我面临以下情况。
I have a formpanel, within this formpanel I have another tabpanel in which again form elements are placed that are part of the formpanel. Nothing spectacular. Basically a formpanel with some "subforms" each contained in a tab in a tabpanel.
现在,我添加了代码,以便在用户单击工具栏中的按钮时禁用/启用每个子表单/选项卡。但为了验证跳过禁用选项卡中的所有表单元素,我还需要单独禁用选项卡面板中的每个表单字段,以便在提交时跳过验证。
这就是麻烦开始的时候。假设在其中一个选项卡/子表单中,我有一个带有另一个嵌套字段集的字段集。 如何获取选项卡/子表单中包含的所有 xtype:field 元素?
所以基本上我要问的是如何获取选项卡子组件的所有组件,无论它们在组件层次结构中的深度是什么?当我有一个方法来收集所有子组件时,很容易循环它们并禁用从 Ext.isXType('field') 返回 true 的组件...但我不知道当我有一个子组件时如何收集所有子组件对其包含组件的引用。
最佳答案
这样:
var componentsArray = container.findByType('component');
甚至这个
var componentsArray = container.findBy(function(c) {return true});
(应该更快)
但是应该注意的是,这不会返回 Ext.Panel 的
后代。tbar
、bbar
、buttons
属性内的组件
关于javascript - Extjs3 组件层次结构 - 获取所有子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4750157/