web-dev-qa-db-fra.com

Meilleure pratique pour remplacer les classes/propriétés dans ExtJS?

J'ai un Ext.form.field.Text et je veux remplacer la fonction setValue.

Quelle est la méthode recommandée pour remplacer cette fonctionnalité de classe dans ExtJS? Ext.override ?

29
A1rPun

La réponse de @sra est excellente et m'a été très utile pour mieux comprendre la fonctionnalité de substitution disponible dans Ext, mais elle n'inclut pas la manière dont j'implémente le plus souvent les substitutions, qui ressemble à ceci:

Ext.define('my.application.form.field.Text' {
    override: 'Ext.form.field.Text'
    getValue: function () {
        // your custom functionality here
        arguments[1] = false;

        // callParent can be used if desired, or the method can be 
        // re-written without reference to the original
        this.callParent(arguments)
    }
});

J'utilise toujours Ext 5, je vais donc charger ce fichier dans mon Application.js et l'ajouter au tableau require qui applique le remplacement à l'application globalement. Je pense que les projets Ext 6 incluent un dossier de remplacement et que le simple ajout de ce fichier dans ce dossier garantit que le remplacement est appliqué.

1
Grant Humphries