Vous pouvez utiliser le plugin pour cela, puisque vous pouvez appeler ou même remplacer les méthodes privées à partir du plug-in:
var suggested_text_plugin = {
init: function(o) {
o.onTypeAhead = function() {
// Original code from the sources goes here:
if(this.store.getCount() > 0){
var r = this.store.getAt(0);
var newValue = r.data[this.displayField];
var len = newValue.length;
var selStart = this.getRawValue().length;
if(selStart != len){
this.setRawValue(newValue);
this.selectText(selStart, newValue.length);
}
}
// Your code to display newValue in DOM
......myDom.getEl().update(newValue);
};
}
};
// in combobox code:
var cb = new Ext.form.ComboBox({
....
plugins: suggested_text_plugin,
....
});
Je pense qu'il est même possible de créer une chaîne de méthodes, appelant la méthode originale avant ou après le tien, mais je n'ai pas encore essayé.
De même, ne me forcez pas à utiliser des méthodes de définition et d'invocation de plug-in non standard (non documentées). C'est juste ma façon de voir les choses.
EDIT:
Je pense que la chaîne de méthode pourrait être mis en œuvre quelque chose comme ça (non testé):
....
o.origTypeAhead = new Function(this.onTypeAhead.toSource());
// or just
o.origTypeAhead = this.onTypeAhead;
....
o.onTypeAhead = function() {
// Call original
this.origTypeAhead();
// Display value into your DOM element
...myDom....
};
Vous avez probablement raison, mais dans ce cas, je vais certainement utiliser seulement une combobox, donc ça n'a pas vraiment d'importance :) Merci pour le conseil – qui