我似乎在为我用过一百万次的东西而苦苦挣扎!我不明白为什么突然它不再起作用了:)
我的布局
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')
它只是返回空值。
我的输出
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'
});
任何想法为什么?