2017-01-23 8 views
0

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プロパティを設定してみましたが、どちらも動作しませんでした。

私はまだ検索しており、これについてのあなたのコメント/アイデアを読むことを楽しみにしています。 :)ありがとう

+0

tsコードファイル全体を表示できますか?これは、この変数の変化するコンテキストについての記述から、スコープの問題のように聞こえます。 – mindparse

+2

Typescriptでは、矢印機能を使用してコンテキストを保持できます。何かのように: 'onlyGreaterThanFromDate =(date)=> { if(this.dateFrom!= undefined) return(date.getTime()> this.dateFrom.getTime()); }; ' –

答えて

1

ありがとうございましたあなたの答えのために漢曹。それは、右のコードだったと私はだから私は解決策を再投稿してい

活字体:)に便利な機能を学んだ:

は活字体では、あなたがコンテキストを維持するために、矢印機能を使用することができます。 次のようなものです:onlyGreaterThanFromDate =(date)=> { (this.dateFrom!=未定義)return(date.getTime()> this.dateFrom.getTime()); };

関連する問題