0
私はタイスクリプトファイルを持ち、kendoDatePickerを使用しています。私が日付を選択してアラート(this.selectedDate1)をすると、私は選択した日付を取得することができます。 しかし、ボタンをクリックすると、以下のgetInvoices()メソッドが呼び出され、selectedDate1の値を取得しようとしました。常に定義されていません。 ここで何が間違っていますか?kendouiカレンダーコントロールから選択した日付をグローバル変数に格納する
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.
}
あなたのソリューションはかなり良いです。したがって、(e)=>は非常に重要ですか? – user2320476
はい - それはかなり軽微ですが、実際にはこの関数の中に 'this'の意味を保持しています - それは基本的な変更です。 – Fenton