javascript - Extjs3 组件层次结构 - 获取所有子组件

标签 javascript extjs

我面临以下情况。

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 的 tbarbbarbuttons 属性内的组件 后代。

关于javascript - Extjs3 组件层次结构 - 获取所有子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4750157/

相关文章:

javascript - 无法加载 ext-all.js 文件

extjs - 为什么不加载在 ViewModel 中声明的商店?

extjs - 以编程方式调用按钮事件的处理程序?

drag-and-drop - 通缉: Directions/ideas for a custom tree-to-tree drag'n'drop implementation in ExtJS

extjs - 只读 PropertyGrid

javascript - 如何将状态从子组件传递到应用程序组件

javascript - 只能为 AngularJS $http Promise 分配一个错误/成功函数吗?

javascript - 是否可以通过 ASP.Net Core 中不显眼的 AJAX 将参数/单个表单元素传递给 Controller ​​?

javascript - jquery使用输入框内容

javascript - 从另一个 Controller 重新加载一个 Controller Angular js