Guten Tag. Ich entwickle eine Webanwendung und möchte überprüfen, ob mein fieldSet schmutzig ist. Die erste Sache, die ich versuchte, war fieldSet.isDirty();
, aber ich stieß bald auf einen Fehler, da die Funktion isDirty()
nicht auf das fieldSet xType angewendet werden kann. Da ich immer noch eine elegante Lösung verwenden wollte, schrieb ich eine Überschreibung für das fieldSet. Mein Override sieht folgendermaßen aus:ExtJS - Überschreiben des FieldSet xType und Hinzufügen einer Funktion scheint nicht zu funktionieren?
Ext.define('myApp.override.form.FieldSet', {
override: 'Ext.form.FieldSet',
sampleOverride: function(){
console.log("hi! sample override function entered");
},
checkForDirtyFields: function(){
me = this;
return this.getFields().findBy(function(f){
return f.isDirty();
});
}
});
Wie Sie sehen können, schrieb ich 2 Funktionen, eine als Beispiel, und die andere, für die Überprüfung von schmutzigen Feldern innerhalb der fieldSet. Beim Versuch, es in meinem Controller zu verwenden, wie:
fieldSet.checkForDirtyFields();
fieldSet.sampleOverride();
bin ich durch einen Fehler empfangen: Uncaught TypeError: fieldSet.sampleOverride is not a function
Am nun berechtigterweise verwirrt. Ich habe Überschreibungen für den Panel-XType geschrieben und kann sie wie vorgesehen verwenden (zum Löschen eines unreinen Status, zum Löschen der Felder in einem Formular usw.). Es scheint jedoch, dass ich keine Override-Funktion für das Fieldset erstellen kann.
Alle führen und Hilfe wird sehr geschätzt. Vielen Dank.
Es gibt keinen Grund, der nicht funktionieren sollte. Stellen Sie einen Testfall zusammen. –
Ich habe eine Arbeit gefunden. Ich werde bald meine Antwort posten. – Razgriz