0
因爲我從JavaScript轉換爲TypeScript(版本2.1.5),下面的代碼過濾日期選擇不再有效。我想我知道爲什麼,但我現在還沒有找到一個好的解決方案。Typescript + Angular:變量上下文
這裏是我的兩個日期選取器:從和到:
<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>
在Controller.ts我:
dateTo: Date;
dateFrom: Date;
onlyGreaterThanFromDate(date) {
if (this.dateFrom != undefined)
return (date.getTime() > this.dateFrom.getTime());
};
而在瀏覽器(Chrome)調試,我注意到,當這個方法執行後,上下文已經改變了,這個代表沒有更多我的控制器,但是CalendarCtrl等等,this.dateFrom是未定義的。
我嘗試了一些調整設置dateFrom屬性在靜態或私人,但也不工作。
我仍在尋找,我期待着閱讀你對此的評論/想法。 :)謝謝
您能顯示整個ts代碼文件嗎?這聽起來像是你所描述的關於這個變量變化上下文的範圍問題。 – mindparse
在Typescript中,你可以使用箭頭函數來保存上下文。例如:'onlyGreaterThanFromDate =(date)=> {if(this.dateFrom!= undefined) return(date.getTime()> this.dateFrom.getTime()); };' –