Javascript 向容器extjs动态添加文本区域

Javascript 向容器extjs动态添加文本区域,javascript,extjs,extjs4,extjs3,Javascript,Extjs,Extjs4,Extjs3,我在向容器动态添加文本区域时遇到问题 容器的初始创建: xtype: 'container', layout: 'form', width: 400, ref: 'form', layoutConfig: { labelSeparator: ' ', trackLabels: true }, items: [{ xtype: 'textarea', value: 'test',

我在向容器动态添加文本区域时遇到问题

容器的初始创建:

xtype: 'container',
    layout: 'form',
    width: 400,
    ref: 'form',
    layoutConfig: {
        labelSeparator: ' ',
        trackLabels: true
    },
    items: [{
        xtype: 'textarea',
        value: 'test',
        fieldLabel: 'label',
        anchor: '100%',
        submitValue: false,
        readOnly: true,
        ref: '../field_1',
        id: 'field_1'
    }]
}
动态代码:

 for (i = 4; i < obj.length; i++) {
     var id = i + 12;
     id = 'field_' + id;
     var field = newTextArea(id);
     field.setValue(obj[i].value);
     field.setVisible(true);
     this.form.add(field);
 }
问题:

调试并查看表单时,textarea会添加到表单项中,但不会显示在浏览器中。有人能建议怎么做吗

问候,

Raj

检查这个

不确定您的代码有什么问题,您没有提到什么是
obj
,我认为
this.form
对容器的引用是错误的。我认为您可以使用或类似的方法(例如组件的
up
down
方法)。

检查此项


不确定您的代码有什么问题,您没有提到什么是
obj
,我认为
this.form
对容器的引用是错误的。我认为您可以使用或类似的方法(例如组件的
up
down
方法)。

在extjs3.x中,您必须在将项目添加到容器后调用
doLayout

for (i = 4; i < obj.length; i++) {
    var id = i + 12;
    id = 'field_' + id;
    var field = newTextArea(id);
    field.setValue(obj[i].value);
    field.setVisible(true);
    this.form.add(field);
}

this.form.doLayout();
for(i=4;i
在extjs 3.x中,将项目添加到容器后,必须调用
doLayout

for (i = 4; i < obj.length; i++) {
    var id = i + 12;
    id = 'field_' + id;
    var field = newTextArea(id);
    field.setValue(obj[i].value);
    field.setVisible(true);
    this.form.add(field);
}

this.form.doLayout();
for(i=4;i
动态代码在哪里以及在什么范围内执行?不确定“this.form”是否是引用容器的正确方法。@scebotari动态代码在表单范围内执行,如果我使用rendered:true,EL是未定义的错误。检查这个简单的fiddle-。不确定您的代码有什么问题,您没有提到什么是
obj
,我认为
this.form
对容器的引用是错误的。我认为您可以使用
Ext.ComponentQuery.query
或类似的方法(如
up
down
可查询组件的方法)。动态代码在何处以及在什么范围内执行?不确定“this.form”是否是引用容器的正确方法。@scebotari动态代码在表单范围内执行,如果我使用rendered:true,EL是未定义的错误。检查这个简单的fiddle-。不确定您的代码有什么问题,您没有提到什么是
obj
,我认为
this.form
对容器的引用是错误的。我认为您可以使用
Ext.ComponentQuery.query
或类似的方法(例如
up
down
方法来查询可查询的组件)。