マテリアルカレンダーを使用していて、ユーザーに1か月の日付のみを選択させたい。 minData
およびmaxDate
フィールドを使用しています。 minDate
は機能していますが、maxDate
は機能していません。
exmple.component.html
<mat-calendar [selected]="selectedDate" (selectedChange)="onCalendarSelectedChange($event)" [minDate]="today" [maxDate]="maxDate"></mat-calendar>
ここに与えられたリンクがあります:
https://angular-pknsri.stackblitz.io
私を助けてください。
実際、あなたはスタックブリッツをアニルの答えで変えています。だから私はおそらく間違っていたかもしれないものを更新しています。最小と最大の2つの異なる日付オブジェクトを個別に作成する必要があります。
var minCurrentDate = new Date();
var maxNewDate = new Date();
this.minDate = minCurrentDate;
this.maxDate = maxNewDate.setMonth(maxNewDate.getMonth()+1);
// this.minDate = new Date(2000, 0, 1);
// this.maxDate = new Date(2020, 0, 1);
console.log(this.maxDate, minCurrentDate,maxNewDate, maxNewDate.getMonth());
現在の日付でsetMonth()を実行すると、min dateの参照も変更されました。 minDateとmax dateの両方が同じものを指しています。すべてのオブジェクトが同じになった後、参照のみが変更されました。したがって、2つの異なるオブジェクトを作成して確認してください。
PS:ファーハットが私を競争させた:P。見なかった。
hTMLで
<mat-form-field class="example-full-width">
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="picker" placeholder="Choose a date">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
tsファイル
minDate = new Date(2000, 0, 1);
maxDate = new Date(2020, 0, 1);
リファレンス https://material.angular.io/components/datepicker/examples
以下は、あなたに役立つ日付ピッカーの例です: StackBlitz HERE