J'ai un fichier tapuscrit et utilise kendoDatePicker. Si je sélectionne une date et que je alerte (this.selectedDate1), je peux obtenir la date que j'ai sélectionnée. Cependant, en cliquant sur un bouton, j'appelle la méthode getInvoices() ci-dessous et essaye de récupérer la valeur selectedDate1. C'est toujours indéfini. Qu'est-ce que je fais mal ici?Stockage de la date sélectionnée à partir d'un contrôle de calendrier kendoui dans une variable globale
selectedDate1: Date;
selectedDate2: Date;
createDatePicker = function (controlNum: number) {
var datePicker = $("#datePicker" + controlNum).kendoDatePicker();
datePicker.data("kendoDatePicker").destroy();
datePicker.empty();
var datePickerControl = $("#datePicker" + controlNum).kendoDatePicker({
change: function (e) {
if (controlNum === 1) {
this.selectedDate1 = $("#datePicker" + controlNum).data("kendoDatePicker").value();
alert(this.selectedDate1);
} else {
this.selectedDate2 = $("#datePicker" + controlNum).data("kendoDatePicker").value();
alert(this.selectedDate2);
}
}
}).data("kendoDatePicker");
}
getInvoices() {
alert(this.selectedDate1);
// returns undefined all the time.
}
Votre solution fonctionne plutôt bien. Donc le (e) => est très important? – user2320476
Oui - cela semble assez mineur, mais cela préserve la signification de 'this' dans cette fonction - c'est donc un changement fondamental. – Fenton