sem*_*lon 2 angular-material angular
我有 Angular Material 的 DatePickerRange,我想在更改 DatePicker 中的值时运行一个函数,我尝试使用该函数(更改)但它不起作用我很乐意为您提供帮助。谢谢!
这是我的 html:
<mat-form-field class="form-field">
<mat-label>Enter a date range</mat-label>
<mat-date-range-input [formGroup]="range" [rangePicker]="picker">
<input matStartDate formControlName="start" placeholder="Start date">
<input matEndDate formControlName="end" placeholder="End date">
</mat-date-range-input>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-date-range-picker #picker></mat-date-range-picker>
<mat-error *ngIf="range.controls.start.hasError('matStartDateInvalid')">Invalid start date
</mat-error>
<mat-error *ngIf="range.controls.end.hasError('matEndDateInvalid')">Invalid end date
</mat-error>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
这就是我要激活的功能:
@Output() newItemEvent = new EventEmitter<bookedDate>();
addNewDate() {
this.dateRange.dateStart = this.range.get('start').value;
this.dateRange.dateEnd = this.range.get('end').value;
this.newItemEvent.emit(this.dateRange);
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*ers 11
我的方法是添加模板引用变量来的输入,matStartDate以及matEndDate。这些都是dateRangeStart和dateRangeEnd下面的模板例子:
// Template
<mat-form-field appearance="standard">
<mat-label>{{reportField.value.label}}</mat-label>
<mat-date-range-input [rangePicker]="dateRangePicker">
<input matStartDate
placeholder="Start date"
#dateRangeStart>
<input matEndDate
placeholder="End date"
#dateRangeEnd
(dateChange)="dateRangeChange(dateRangeStart, dateRangeEnd)">
</mat-date-range-input>
<mat-datepicker-toggle matPrefix
[for]="dateRangePicker">
</mat-datepicker-toggle>
<mat-date-range-picker #dateRangePicker></mat-date-range-picker>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
然后,这些输入的值可以由dateChange输出调用的函数访问matEndDate。
// Component
dateRangeChange(dateRangeStart: HTMLInputElement, dateRangeEnd: HTMLInputElement) {
console.log(dateRangeStart.value);
console.log(dateRangeEnd.value);
}
Run Code Online (Sandbox Code Playgroud)
这避免了dateChange在两个输入上都需要一个事件。
Kir*_*bel -2
尝试dateChange一下
<mat-date-range-input [formGroup]="range" [rangePicker]="picker" (dateChange)="addNewDate()">
<input matStartDate formControlName="start" placeholder="Start date">
<input matEndDate formControlName="end" placeholder="End date">
</mat-date-range-input>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7789 次 |
| 最近记录: |