关于材料文档,我:
import {MdDatepickerModule} from '@angular/material';
在根模块中并将其添加到提供程序列表中,但是coudln不会在模板中使用它。得到了这个错误:
未捕获(承诺):错误:MdDatepicker:找不到提供商 DateAdapter。您必须导入以下模块之一 应用程序root:MdNativeDateModule,或提供自定义 实施
所以根据它,我删除了最后一个导入并添加了:
import {MdNativeDateModule} from '@angular/material';
现在,看起来,它的确有效。为什么材料文档会导致导入MdDatepickerModule
,而不是MdNativeDateModule
?它们有何区别?
答案 0 :(得分:22)
The example in the docs实际上导入MdNativeDateModule
。单击plunker链接并查看main.ts文件。文档并不像首选那样明确。
MdDatepickerModule
是包含组件本身的模块。该组件与您使用它的日期的实现无关。
例如,如果您希望使用Moment.JS dates而不是JavaScript的本地Date
对象,则可以编写自己的类来处理Moment.JS对象。这解释为here。
但是,如果您只是想使用JavaScript的Date
个对象,则需要使用NativeDateAdapter
中已包含的@angular/material
类。此课程由MdNativeDateModule
提供。
MdDatepickerModule
不提供它,因为该模块仅处理UI组件,如果您使用的是Moment.JS对象,则不需要在应用程序中使用NativeDateAdapter
类
答案 1 :(得分:6)
导入后需要从@ angular / material导入MatNativeDateModule,你必须在angular material
上看到的@NgModule中导入和导出它