JavaScriptからTypeScript(バージョン2.1.5)に移行して以来、日付選択をフィルタする次のコードはもう機能しません。理由を知っていると思いますが、現時点では良い解決策を見つけられませんでした。ここでTypescript + Angular:変数を変更するコンテキスト
は私の2つの日付-ピッカーあります。FromとTo:
私が持っているController.tsで <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>
:
dateTo: Date;
dateFrom: Date;
onlyGreaterThanFromDate(date) {
if (this.dateFrom != undefined)
return (date.getTime() > this.dateFrom.getTime());
};
ブラウザ(クローム)でデバッグ中、私はときに気づいこのメソッドが実行され、コンテキストが変更され、このは、もはや私のコントローラを表していませんが、CalendarCtrlを表すので、this.dateFromは未定義です。
静的または非公開でdateFromプロパティを設定してみましたが、どちらも動作しませんでした。
私はまだ検索しており、これについてのあなたのコメント/アイデアを読むことを楽しみにしています。 :)ありがとう
tsコードファイル全体を表示できますか?これは、この変数の変化するコンテキストについての記述から、スコープの問題のように聞こえます。 – mindparse
Typescriptでは、矢印機能を使用してコンテキストを保持できます。何かのように: 'onlyGreaterThanFromDate =(date)=> { if(this.dateFrom!= undefined) return(date.getTime()> this.dateFrom.getTime()); }; ' –