Angular Material DatePicker - 错误:MdDatepicker:找不到DateAdapter的提供程序

Jul*_*ius 15 material angular

以下材料文档,我:

import {MdDatepickerModule} from '@angular/material';
Run Code Online (Sandbox Code Playgroud)

在根模块中并将其添加到提供程序列表中,但是不能在模板中使用它.得到此错误:

未捕获(承诺):错误:MdDatepicker:找不到DateAdapter的提供程序.您必须在应用程序根目录中导入以下模块之一:MdNativeDateModule,或提供自定义实现.

所以根据它,我删除了最后一个导入并添加:

import {MdNativeDateModule} from '@angular/material';
Run Code Online (Sandbox Code Playgroud)

现在,看起来,它的工作原理.为什么Material docs会导致导入MdDatepickerModule,但不是MdNativeDateModule?它们有何区别?

Aak*_*ain 22

文档中的示例实际上是导入的MdNativeDateModule.单击plunker链接并查看main.ts文件.文档并不像首选那样明确.

MdDatepickerModule是包含组件本身的模块.该组件与您使用它的日期的实现无关.

例如,如果您希望使用Moment.JS日期而不是JavaScript的本机Date对象,则可以编写自己的类来处理Moment.JS对象.这在这里解释.

但是,如果您只是想使用JavaScript的Date对象,则需要使用NativeDateAdapter已包含在其中的类@angular/material.本课程由本课程提供MdNativeDateModule.

它不是MdDatepickerModule由于该模块仅处理UI组件而提供的,如果您使用的是Moment.JS对象,则不需要NativeDateAdapter在您的应用程序中使用该类.

  • 更新模块名称现在 - "MatNativeDateModule" (8认同)

小智 6

你需要在导入后从@ angular/material导入MatNativeDateModule,你必须在@NgModule中导入和导出它,你可以在角度材料上看到它