seit ich von JavaScript zu TypeScript (Version 2.1.5) überging, funktioniert der folgende Code, der die Datumsauswahl filtert nicht mehr. Und ich denke ich weiß warum, aber ich habe in diesem Moment keine gute Lösung gefunden.Typescript + Angular: Variablen ändernden Kontext
Hier sind meine zwei Datum-Picker: Von und Bis:
<div class="form-group">
<label class="label label-letter-spacing">From </label>
<div class='input-group date' id='datepickerFrom'>
<md-datepicker ng-model="vm.dateFrom"></md-datepicker>
</div>
</div>
<div class="form-group">
<label class="label label-letter-spacing">To </label>
<div class='input-group date' id='datepickerTo'>
<md-datepicker ng-model="vm.dateTo" md-date-filter="vm.onlyGreaterThanFromDate" ></md-datepicker>
</div>
</div>
In den Controller.ts ich habe:
dateTo: Date;
dateFrom: Date;
onlyGreaterThanFromDate(date) {
if (this.dateFrom != undefined)
return (date.getTime() > this.dateFrom.getTime());
};
Während des Debuggens in Browser (Chrom), bemerkte ich, dass, wenn Diese Methode wird ausgeführt, der Kontext hat sich geändert und dieser stellt nicht mehr meinen Controller, sondern die CalendarCtrl dar, und so ist die this.dateFrom nicht definiert.
Ich habe versucht, einige Einstellungen als dateFrom Eigenschaft in statischen oder privaten setzen, funktioniert aber auch nicht.
Ich bin immer noch auf der Suche und ich freue mich auf Ihre Kommentare/Ideen zu diesem Thema. :) Danke
Können Sie bitte die gesamte ts-Code-Datei anzeigen? Es klingt wie ein Scoping-Problem von dem, was Sie über den sich ändernden Kontext dieser Variable beschreiben. – mindparse
In Typescript können Sie die Pfeilfunktion verwenden, um den Kontext zu erhalten. Etwas wie: 'onlyGreaterThanFromDate = (Datum) => { if (this.dateFrom! = Undefined) Rückgabe (date.getTime()> this.dateFrom.getTime()); }; ' –