Extjs组件查询.down()

标签 extjs components textfield traversal

我似乎正在与我已经使用过一百万次的东西作斗争!我不明白为什么突然它不再工作了:)

我的布局

an accordion 
    > toolbar
    > tabs
        >tab 1
            > form.panel 1
                > textfield (alias: 'widget.mytextfield')
            > form.panel 2
        >tab 2
            > form.panel 1

现在问题来了...当我在面板 1 时尝试访问文本字段 (mytextfield)

//panel, being 'tab 1 > panel 1'
var textfield = panel.down('mytextfield')

它只是返回 null。

我的输出

console.info(panel.down());

是面板的标题(所以我在正确的位置定义)->似乎找不到面板的主体

有什么想法吗?完全卡住了!

我获得“mytextfield”的唯一方法是使用

var textfield = panel.items.items[0];

但是如果文本字段改变顺序,那么上面的代码当然就不再起作用了

提前致谢!

更新

好吧,我发现了一些东西......这很奇怪

如果我将文本字段从面板中取出并将其放入单独的文件中。然后使用 requires 包含它。我可以使用 .down()

访问文本字段

例如在我的主表单面板中

...
requires:['App.view.MyTextField'],
items:[{
    xtype:'mytextfield' //i can access you with .down()
},{
    xtype:'textfield',
    alias:'widget.mytextfield2' //you are showing up - but I CANT access you with .down() - only panel.items.items[0]
}]
...

我的文本字段

Ext.define('App.view.MyTextField', {
    extend:'Ext.form.field.Textfield',
    alias:'widget.mytextfield'
});

有什么想法吗?

最佳答案

如何以及在哪里获取父面板组件?

http://jsfiddle.net/UBb8n/1/ - 对我有用。

更新:

根据documentation :

alias: List of short aliases for class names. Most useful for defining xtypes for widgets.

所以请记住 items: {xtype: 'blah'} != Ext.define('My.Class.Blah', {alias: 'widget.blah'}) 。 第一个只是第二个的实例。

alias: 'widget.mycoolpanel'只是辅助函数 Ext.widget 的简写搜索带有 xtype: 'widget.<…>' 的组件.

关于Extjs组件查询.down(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10534500/

相关文章:

java - Spring 休息时收到 400 Bad request

javascript - 如何将 Controller 引用到 Sencha Architect 中的 View ?

使用 Extjs 将 SVG 转换为 PNG 的 Python 脚本

javascript - 使用 React 以编程方式添加组件

html - 隐藏文本字段闪烁光标

javascript - 迁移 Ext JS 4 代码库时无法覆盖 Ext.data.proxy.Ajax 实例上的方法 afterRequest

delphi - 有人可以推荐 Delphi 的颜色选择器组件吗?

delphi - Delphi 可以显示带图片的富文本的免费组件

ios - 在按钮单击上生成文本字段 swift

ios - 如何在 SwiftUI 中更新 TextField 的值?