Я использую двустороннюю привязку в моей форме, управляемой шаблоном:
тс:
searchLeaveApplication: any = {};
HTML:
<mat-form-field class = "searchInputs">
<input
matInput
[matDatepicker] = "searchStartDate"
[(ngModel)] = "this.searchLeaveApplication.startDate"
name = "startDate"
/>
<mat-datepicker-toggle
matSuffix
[for] = "searchStartDate"
></mat-datepicker-toggle>
<mat-datepicker #searchStartDate></mat-datepicker>
</mat-form-field>
Однако я получаю это как дату:
Что неприемлемо в качестве формата даты для API (ядро .Net). Как я могу изменить формат на правильный формат даты? Я полагаю, что не могу использовать каналы даты в двусторонних привязках.
Вы всегда можете импортировать DatePipe или Формат Дата Angular в свой component.ts и преобразовать searchLeaveApplication.startDate
в требуемый формат даты и времени, который принимается ядром .Net. Полный список предопределенных параметров и пользовательских форматов можно найти здесь.
1) Если вы собираетесь использовать DatePipe
, вы можете сделать следующее ниже.
import { DatePipe } from '@angular/common';
export class SampleComponent implements OnInit {
constructor(private datePipe: DatePipe) {}
saveData() {
const searchStartDateString = this.datePipe.transform(this.searchLeaveApplication.startDate, 'yyyy-MM-dd');
// handle the rest
}
}
Не забудьте добавить DatePipe к вашим провайдерам в вашем модуле.
providers: [DatePipe]
2) В качестве альтернативы вы можете использовать formatDate
:
import { formatDate } from '@angular/common';
export class SampleComponent implements OnInit {
constructor(@Inject(LOCALE_ID) private locale: string) {}
saveData() {
const searchStartDateString = formatDate(this.searchLeaveApplication.startDate, 'MM-yyyy', this.locale);
// handle the rest
}
}