2017-04-19 68 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]」是一個字符串,而不是引用數組。