我有一个要添加到主 TabPanel 的 Ext Js 面板。我添加的面板包含一个 FormPanel 作为它的项目之一,在 FormPanel 内我有一个 Name 字段。我想要做的是根据表单字段中的名称更改选项卡的名称。
问题是,如果我在面板的 initComponent 中调用 FormPanel getForm().getValues()
,我会收到以下 javascript 错误:
Uncaught TypeError: Cannot read property 'dom' of undefined
如果我在 initComponent 之外执行此操作(例如按下按钮),一切正常。在做了一些测试之后,我认为问题在于 FormPanel 实际上还没有渲染(因此 dom 不存在),getValues()
失败了。但是,我似乎无法找到一种方法来从加载时的面板中获取 FormPanel 的值。
我试图监听事件。我试过了:
this.detailForm.on('afterrender', function () { alert('test'); });
但是这样做表明AfterRender
在实际呈现表单之前调用它(它在屏幕上不可见)。将警报更改为我的自定义函数处理程序会产生先前的 dom 异常。我尝试使用activate
andenable
事件而不是afterrender
,但即使 API 说 FormPanel 会触发这些事件,alert('test') 也不会被调用。
在加载我的面板时,我似乎找不到任何方法让我的面板获取内部 FormPanel 的值。有没有人有任何想法?