Ich habe eine Handler-Funktion, die eine Ext.window.Window
erstellt, mit Feldern zur Eingabe von Daten, ich muss diesen Teil des Codes zu einer Controller-Funktion verschieben und trennen von der Haupt-Ajax-Anfrage ist dies für Code-Wiederverwendungszwecke.Wie würde ich einen Teil einer Handler-Funktion in einen Controller in Sencha setzen
var win = Ext.create('Ext.window.Window', {
title: 'New Client',
id: 'addClientWindow',
width: 500,
height: 300,
items: [{
xtype: 'form',
bodyPadding: 10,
items: [{
xtype: 'fieldset',
title: 'My Fields',
items: [{
xtype: 'textfield',
anchor: '100%',
id: 'nameTextField',
fieldLabel: 'Name',
labelWidth: 140
}, {
xtype: 'textfield',
anchor: '100%',
id: 'physicalTextField',
fieldLabel: 'Physical Address',
labelWidth: 140
}, {
xtype: 'textfield',
anchor: '100%',
id: 'postalTextField',
fieldLabel: 'Postal Address',
labelWidth: 140
}]
}],
dockedItems: [{
xtype: 'toolbar',
dock: 'bottom',
items: [{
xtype: 'button',
id: 'cancelClientBtn',
text: 'Cancel',
listeners: {
click: function(c) {
Ext.getCmp('addClientWindow').close();
}
}
}, {
xtype: 'tbspacer',
flex: 1
}, {
xtype: 'button',
id: 'saveClientBtn',
text: 'Save',
listeners: {
click: function(c) {
Ext.Ajax.request({
url: 'system/index.php',
method: 'POST',
params: {
class: 'Company',
method: 'add',
data: Ext.encode({
name: Ext.getCmp('nameTextField').getValue(),
physical: Ext.getCmp('physicalTextField').getValue(),
postal: Ext.getCmp('postalTextField').getValue()
})
},
success: function(response) {
Ext.MessageBox.alert('Status', 'Record has been updated.');
Ext.getStore('CompanyStore').reload();
Ext.getCmp('addClientWindow').close();
},
failure: function() {
Ext.MessageBox.alert('Status', 'Failed to update record.');
}
});
}
}
}]
}]
}]
});
win.show();
Die Schaltfläche öffnet das Fenster und führt diese Ajax-Request, ich habe die zwei voneinander getrennte gerade benötigen. Jede Hilfe wird geschätzt.
Welche Version von ExtJS sind Benutzst du? – JChap
ExtJS Version 6 –
Der Punkt ist, dass ich Record-Schaltflächen auf mehrere Registerkarten hinzufügen, so im Grunde brauche ich das gleiche Fenster von allen verschiedenen Aufrufen zugegriffen werden, Denn gerade diesen Code habe ich oben in jedem Handler, ich gerade brauche es an einem Ort zugegriffen werden, Es ist unweigerlich duplizieren ID, was ich vermeiden möchte –