角度/材质/日期选择器-未找到DateAdapter的提供者

时间:2018-08-05 23:25:35

标签: angular typescript datepicker material-design angular6

我有一个问题:angular / material / datepicker

我有一个虚拟项目,可以正确处理以下文件:

/src/app/app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MatStepperModule, MatInputModule, MatButtonModule, MatNativeDateModule } from '@angular/material';
import { MatDatepickerModule } from '@angular/material/datepicker';

import { AppComponent } from './app.component';
import { StepperComponent } from './components/stepper/stepper.component';
import { DatepickerComponent } from './components/datepicker/datepicker.component';

@NgModule({
    declarations: [
        AppComponent,
        StepperComponent,
        DatepickerComponent,
    ],
    imports: [
        BrowserModule,
        FormsModule,
        ReactiveFormsModule,
        BrowserAnimationsModule,
        MatStepperModule,
        MatInputModule,
        MatButtonModule,
        MatNativeDateModule,
        MatDatepickerModule,
    ],
    providers: [],
    bootstrap: [ AppComponent ]
})
export class AppModule { }

/src/app/components/datepicker/datepicker.component.html

<mat-form-field>
    <input matInput [matDatepicker]="picker" placeholder="Choose a date">
    <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
    <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

这是我正在检查的API:

https://material.angular.io/components/datepicker/api

我想知道,为什么我在文件MatNativeDateModule上评论了app.module.ts的导入:在浏览器中出现错误:

ERROR Error: "MatDatepicker: No provider found for DateAdapter. You must import one of the following modules at your application root: MatNativeDateModule, MatMomentDateModule, or provide a custom implementation."

API部分中,他们没有提及该模块。

他们在Overview部分提到了该模块,但没有提供太多细节。

您能帮我清除一下吗?有时候看起来很晦涩。

谢谢!

1 个答案:

答案 0 :(得分:0)

这个想法是让开发人员可以选择它,以便其不受限制地选择所需的日期提供程序,因此他们没有在概述而不是 API 下提及它API仅用于角材料设计的核心API,可为您提供对特定材料组件的控制和可访问性。

matNativeDateModule并不是通过解析时间来整体开发的模块,只是告诉matDatePicker的模块,嘿,当您使用日期对象时,请使用本地javascript日期对象。也许您不想使用它,而是使用自己的日期对象或JavaScript日期库,例如momentjs