2017-04-19 69 views
0

我有一个使用Ext.Create和add()方法创建的动态子面板的面板。现在我必须在每个面板中设置唯一的字段名称。我试图使用一些独特的ID(myId)参数,但我得到表单提交some_field [undefined]。ExtJS表格中的动态文本字段名称

如何访问myId属性并在视图中的字段名称中使用它? https://fiddle.sencha.com/#fiddle/1u74

谢谢!

+1

你不能像声明式那样使用它。您需要在封闭范围内捕获该变量。 –

回答

0

如果您希望在面板中使用动态自定义配置,我建议在initComponent函数中构建面板。

 Ext.define('MyPanel', { 
     extend: 'Ext.panel.Panel', 
     initComponent: function() { 
      var myid = this.config.myId; // <--- This is a custom config 
      this.items = [ 
       { 
        xtype: 'textarea', 
        fieldLabel: 'Description', 
        name: 'descr['+ myid +']' // <--- Here it is used 
       } 
      ]; 
      this.callParent(arguments); 
     } 
    }); 

,并在创建面板时,该身份识别码是像任何其他配置

Ext.create('MyPanel', { 
     myId: 10 
    }); 

我在一个fiddle使用面板证明了这一点处理。请注意,在小提琴的两种情况下,name是一个字符串。例如“descr [10]”是一个字符串,而不是引用数组。