コンテナにテキスト領域を動的に追加する際に問題があります。コンテナextjsに動的にテキスト領域を追加
コンテナの初期作成:
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);
}
機能:
function newTextArea(id) {
var text_Area = new Ext.form.TextArea({
fieldLabel: 'Test',
height: 30,
width: 250,
submitValue: false,
readOnly: true,
autoScroll: true,
id: id
});
return text_Area;
}
問題:私はデバッグと見
形、 textareaはフォームアイテムに追加されますが、ブラウザには表示されません。誰かが何をすべきか提案することができますか?
よろしく、
ラジ
動的コードはどこで実行されますか。わかりません "this.form"はコンテナを参照する正しい方法です。 – scebotari66
@scebotari動的コードはフォームスコープで実行されます。レンダリングを使用する場合:true、ELは未定義エラーが発生しています。 – user1770589
この簡単なフィドルを確認してください - https://fiddle.sencha.com/#view/editor&fiddle/1ne5。あなたのコードに何が間違っているのか分からないと、 'obj'とは言及せず、' this.form'がコンテナへの間違った参照であると思います。私はあなたが 'Ext.ComponentQuery.query'かそれに類するもの(問い合わせ可能なコンポーネントに対して' up'や 'down'メソッドなど)を使うことができると思います。 –