8
votes

Comment remplacer une option de configuration par défaut sur ext.form.action.submit?

Y a-t-il un moyen de configurer les extjs (via un ext.override?) de sorte que l'option de configuration SoumetDemptyText pour ext.form.action.submit est faux par défaut au lieu de vrai?

Je sais qu'il est possible de remplacer les méthodes sur les cours mais je ne sais pas Les propriétés de configuration par défaut, on pourrait penser que, puisque les options de configuration sont principalement des propriétés publiques que la console journalisation de la console ext.form.action.submit.submitemptytext produirait de la fausse mais non définie. P>

Une façon dont j'ai réussi consécude consiste à créer un Intercepteur pour la méthode de course, mais cela rend fondamentalement l'option de configuration SoumetDeTyText inutile car elle ne peut plus être définie via un objet de configuration transmis au constructeur. p>

Ext.form.Action.Submit.prototype.run = Ext.form.Action.Submit.prototype.run.createInterceptor(function() {
    this.options.submitEmptyText = false;
});


0 commentaires

5 Réponses :


1
votes

Si vous voulez la SoumetDemptyText de ext.form.action.submit Pour être false, il suffit de la définir dans la configuration lorsque vous créez le EXT.FORM .Action.Submit objet. XXX


1 commentaires

Ext.override ne fonctionne pas sur EXT.FORM.ACTION (S) dans ce cas, la propriété SoumetDeTyText est mise en œuvre différemment dans EXT.



3
votes

Si vous souhaitez remplacer l'ext.form.action.submit () pour toutes les instances em>, pourquoi non seulement utiliser un ext.override?

Ext.override(Ext.form.Action.submit, { 
    submitEmptyText: false
});


1 commentaires

Ext.override ne fonctionne pas sur EXT.FORM.ACTION (S) dans ce cas, la propriété SoumetDeTyText est mise en œuvre différemment dans EXT.



8
votes

[édité plusieurs fois, mais cela fonctionne pour moi]

SoumisPtyText n'est pas en fait une propriété du prototype ext.form.action.submit - il est simplement coché dans la fonction Exécuter en tant que propriété du " cet objet "objet - qui est défini en lui-même sur la superclasse, ext.form.action.action.action

Si vous voulez qu'il soit globalement faux par défaut, alors définissez-le sur la propriété Options de ext.form .Action après sa construction xxx

c'est délicat, car l'ext.form.action définit cela.Options à un objet vide dans son constructeur, vous devez donc avoir accès à Cette propriété d'options après exécute le constructeur, c'est pourquoi une créature fonctionne dans ce cas.


1 commentaires

Cela fonctionne comme prévu! En effet, la propriété SoumetDeTyText n'est pas implémentée comme une option de configuration de composant, pourquoi ext.override ne fonctionne pas, ce qui fonctionne parfaitement! Merci!



0
votes

Il est très audacieux d'utiliser le remplacement, cependant, si vous êtes en mesure de gérer que les modifications de la bonne manière sont les suivantes:

Ext.override ( Ext.form.Action.submit, {
   submitEmptyText: false
}); 


0 commentaires

0
votes

Peut-être:

Ext.Window.prototype.constrainHeader = true;


0 commentaires