Угловой указатель даты материала
Angular Material — это библиотека компонентов пользовательского интерфейса, разработанная Google, чтобы разработчики Angular могли разрабатывать современные приложения структурированным и отзывчивым образом. Используя эту библиотеку, мы можем значительно повысить удобство работы конечного пользователя, тем самым популяризируя наше приложение. Эта библиотека содержит современные готовые к использованию элементы, которые можно использовать напрямую с минимальным дополнительным кодом или без него.
Компонент Datepicker в угловом материале используется для выбора дат в качестве входных значений. Для создания Datepicker мы используем директиву <mat-datepicker #picker> . Для выбора дат диапазона вместо выбора одной даты мы можем использовать компоненты mat-date-range-input и mat-date-range-picker .
Синтаксис:
<mat-datepicker #picker> ... </mat-datepicker>
Синтаксис установки: основным предварительным условием является то, что в системе должен быть установлен Angular CLI, чтобы добавить и настроить библиотеку материалов Angular. Следующая команда выполняется в Angular CLI для установки библиотеки материалов angular:
ng add @angular/material
Перед выполнением вышеуказанной команды убедитесь, что путь открыт в терминале.
Подробную процедуру установки см. в статье Добавление компонента Angular Material в приложение Angular.
Добавление компонента Datepicker:
Чтобы использовать компонент Datepicker, нам нужно импортировать следующие модули в файл app.module.ts:
import { MatDatepickerModule } from ‘@angular/material/datepicker’;
import { MatInputModule } from ‘@angular/material/input’;
import { MatNativeDateModule } from ‘@angular/material/core’;
Чтобы использовать компонент Datepicker в нашем коде, мы должны импортировать MatDatepickerModule, MatInputModule и MatNativeDateModule в массив imports.
Структура проекта: После успешной установки структура проекта будет выглядеть следующим образом:
Пример 1. Пример ниже иллюстрирует базовую реализацию средства выбора даты Angular Material.
- app.module.ts
Javascript
import { NgModule } from "@angular/core" ; import { BrowserModule } from "@angular/platform-browser" ; import { AppComponent } from "./app.component" ; import { MatDatepickerModule } from "@angular/material/datepicker" ; import { MatInputModule } from "@angular/material/input" ; import { MatNativeDateModule } from "@angular/material/core" ; import { MatFormFieldModule } from "@angular/material/form-field" ; import { BrowserAnimationsModule } from "@angular/platform-browser/animations" ; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, MatDatepickerModule, MatNativeDateModule, MatInputModule, MatFormFieldModule, BrowserAnimationsModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } |
- app.component.ts
Javascript
import { Component } from "@angular/core" ; @Component({ selector: "app-root" , templateUrl: "./app.component.html" , styleUrls: [ "./app.component.css" ] }) export class AppComponent { title = "AngularApp" ; } |
- app.component.html
HTML
< div > < h1 >GeeksforGeeks</ h1 > < h3 >Angular Material Datepicker</ h3 > < mat-form-field appearance = "fill" > < mat-label >Choose a date</ mat-label > < input matInput [matDatepicker]="picker"> < mat-hint >MM/DD/YYYY</ mat-hint > < mat-datepicker-toggle matSuffix [for]="picker"> </ mat-datepicker-toggle > < mat-datepicker #picker></ mat-datepicker > </ mat-form-field > < br > < h3 >Angular Material Datepicker Range Selection</ h3 > < mat-form-field appearance = "fill" > < mat-label >Enter a date range</ mat-label > < mat-date-range-input [rangePicker]="picker1"> < input matStartDate placeholder = "Start date" > < input matEndDate placeholder = "End date" > </ mat-date-range-input > < mat-hint >MM/DD/YYYY – MM/DD/YYYY</ mat-hint > < mat-datepicker-toggle matSuffix [for]="picker1"> </ mat-datepicker-toggle > < mat-date-range-picker #picker1></ mat-date-range-picker > </ mat-form-field > </ div > |
Выход:
Пример 2. В приведенном ниже примере показана реализация средства выбора даты путем указания средства выбора диапазона дат с настраиваемой стратегией выбора в Angular Material.
- app.module.ts
Javascript
import { NgModule } from "@angular/core" ; import { BrowserModule } from "@angular/platform-browser" ; import { BrowserAnimationsModule } from "@angular/platform-browser/animations" ; import { AppComponent } from "./app.component" ; import { MatDatepickerModule } from "@angular/material/datepicker" ; import { MatInputModule } from "@angular/material/input" ; import { MatNativeDateModule } from "@angular/material/core" ; import { MatFormFieldModule } from "@angular/material/form-field" ; import { FormsModule, ReactiveFormsModule } from "@angular/forms" ; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, MatDatepickerModule, MatNativeDateModule, MatInputModule, MatFormFieldModule, BrowserAnimationsModule, FormsModule, ReactiveFormsModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } |
- app.component.ts
Javascript
import { Component, Injectable } from "@angular/core" ; import { DateAdapter } from "@angular/material/core" ; import { MatDateRangeSelectionStrategy, DateRange, MAT_DATE_RANGE_SELECTION_STRATEGY, } from "@angular/material/datepicker" ; @Injectable() export class FiveDayRangeSelectionStrategy<D> implements MatDateRangeSelectionStrategy<D> { constructor(private _dateAdapter: DateAdapter<D>) { } selectionFinished(date: D | null ): DateRange<D> { return this ._createFiveDayRange(date); } createPreview(activeDate: D | null ): DateRange<D> { return this ._createFiveDayRange(activeDate); } private _createFiveDayRange(date: D | null ): DateRange<D> { if (date) { const start = this ._dateAdapter.addCalendarDays(date, -2); const end = this ._dateAdapter.addCalendarDays(date, 2); return new DateRange < D > (start, end); } return new DateRange < D > ( null , null ); } } @Component({ selector: "app-root" , templateUrl: "./app.component.html" , styleUrls: [ "./app.component.css" ], providers: [ { provide: MAT_DATE_RANGE_SELECTION_STRATEGY, useClass: FiveDayRangeSelectionStrategy, }, ], }) export class AppComponent { title = "AngularApp" ; } |
- app.component.html
HTML
< div > < h1 >GeeksforGeeks</ h1 > < h3 > Angular Material Date range picker with custom a selection strategy </ h3 > < mat-form-field appearance = "fill" > < mat-label >Enter a date range</ mat-label > < mat-date-range-input [rangePicker]="picker"> < input matStartDate placeholder = "Start date" > < input matEndDate placeholder = "End date" > </ mat-date-range-input > < mat-hint >MM/DD/YYYY – MM/DD/YYYY</ mat-hint > < mat-datepicker-toggle matSuffix [for]="picker"> </ mat-datepicker-toggle > < mat-date-range-picker #picker> </ mat-date-range-picker > </ mat-form-field > </ div > |
Выход:
Ссылка: https://material.angular.io/components/datepicker/overview