ich den ExtJS Rahmen verwenden und ich habe die folgende Prozedur, die für eine Schaltfläche nur als Handler verwendet wird:Wie füge ich einem ExtJS-Handler zusätzliche Parameter hinzu?
var myButtonHandler = function(button, event){
//code goes here
};
sieht Meine Taste Definition wie folgt:
var myButton = new Ext.Button({
id : 'myButton',
renderTo : 'mybutton',
text : 'Save',
handler : myButtonHandler,
scope : this
});
Wie Sie sehen können erhält der Handler den erwarteten "Button" und "Event". Ich möchte jedoch einige zusätzliche Informationen an meinen Handler weitergeben. Wie würde ich das tun?
Dies ist eine elegantere Antwort als die von Seb. Die Arbeit zum Erstellen eines Wrappers ist durch createDelegate verborgen. Optional könnte der Benutzer der Schaltfläche eine benutzerdefinierte Eigenschaft hinzufügen und diese vom Handler aus überprüfen. Ich bevorzuge immer noch createDelegate. –
Also, wie würden Sie dies innerhalb der ** myButtonHandler ** -Funktion umgehen, um Ihre [params] zu verwenden? Nur myButtonHandler ([params])? – dmackerman
Ich ging voran und modifizierte das Beispiel, um besser zu zeigen, was Sie mit createDelegate machen können. Auch in Ext4 und SenchaTouch wurde createDelegate aus dem Funktionsprototyp entfernt und ist nun nur noch über Ext.createDelegate (functionToDelegate, scope, args, appendOrInsertIndex) erreichbar. – Ballsacian1