2016-06-15 6 views
0

Ich benutze extJs 6. Ich habe Code wie unten, es kann ein Textfeld oder etwas anderes auch sein. Ich möchte ein gemeinsames Repo für alle Felder erstellen und dann in die Berichte aufnehmen, indem ich xtype oder etwas anderes verwende, da derselbe Code in mehreren Berichten verwendet wird.Felder außerhalb definieren und dann in Elemente bringen lits

items: [ 
       { 
        xtype: 'combo', 
        fieldLabel: 'year', 
        name: 'Year', 
        displayField: 'Key', 
        valueField: 'Year', 
        value: new Date().getFullYear(), 
        store: { 
         type: 'years' 
        } 
       }, 

Es aussehen sollte

items: [ 
        { 
         xtype: 'yearfield' 
        }, 
      ] 

oder

items: [ 
          xtype: 'yearfield' 
       ] 

Als was soll ich diese Felder definieren und was sollte es erweitern.

Antwort

3

Da Ihr altes Feld von xtype:'combo' ist, ist es ein Ext.form.field.ComboBox, also müssten Sie das erweitern.

Ext.define('MyApp.view.MyOwnYearField',{ 
    extend:'Ext.form.field.ComboBox', 
    xtype:'yearfield', // <- the xtype of MyOwnYearField is defined here 
    fieldLabel: 'year', 
    name: 'Year', 
    displayField: 'Key', 
    valueField: 'Year', 
    value: new Date().getFullYear(), 
    store: { 
     type: 'years' 
    } 
}); 

Bevor Sie xtype:'yearfield' verwenden können, müssen Sie die Datei laden, wo es in ist, z.B. durch Hinzufügen des vollständigen Namen der requires Liste:

Ext.define('MyApp.view.SomeReport',{ 
    requires:[ 
     'MyApp.view.MyOwnYearField' // The class is loaded here 
    ], 
    items:[{ 
     xtype:'yearfield' // The class is referenced by xtype. 
          // This is only possible after it has been loaded! 
    }] 
+0

Also in diesem Fall, wenn ich 20 Felder gibt, dann in erfordert i 20 Einträge müssen? oder ist es 1 Dateieintrag .. – Hacker

+0

Wenn Sie Ihren Code standardkonform halten müssen, befürchte ich, dass Sie 20 Einträge benötigen. Wenn Sie dies jedoch nicht müssen, können Sie alle Felddefinitionen in einer einzigen Datei ablegen. In diesem Fall benötigen Sie nur einen Eintrag, der auf diese Datei verweist. – Alexander

+0

Wenn ich diesen XType erstellen, wenn ich den gleichen XType 2 oder mehr Berichte verwende, erstellt es ein neues Objekt oder ist es ein Singleton. Ich verwende Tab-Panel. – Hacker

Verwandte Themen