好的,现在开始工作了。你必须使用
ModuleWithProviders
import { CommonModule } from '@angular/common';
import { NgModule, ModuleWithProviders } from '@angular/core';
import { MAT_DATE_FORMATS, MAT_DATE_LOCALE, DateAdapter, NativeDateAdapter, MatDateFormats } from '@angular/material/core';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { Platform } from '@angular/cdk/platform';
import { registerLocaleData } from '@angular/common';
import localeDe from '@angular/common/locales/de';
import localeDeExtra from '@angular/common/locales/extra/de';
registerLocaleData(localeDe, 'de-De', localeDeExtra);
export const MY_FORMATS: MatDateFormats = {
parse: {
dateInput: {year: 'numeric', month: '2-digit', day: '2-digit'}
},
display: {
dateInput: {year: 'numeric', month: '2-digit', day: '2-digit'},
monthYearLabel: {year: 'numeric', month: 'short'},
dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},
monthYearA11yLabel: {year: 'numeric', month: 'long'}
},
};
@NgModule({
imports: [
CommonModule,
MatDatepickerModule
],
exports: [
MatDatepickerModule
]
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [
{ provide: LOCALE_ID, useValue: 'de-DE' },
{ provide: DateAdapter, useClass: NativeDateAdapter, deps: [MAT_DATE_LOCALE, Platform] },
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS }
]
};
}
}
然后在AppModule中使用SharedModule,比如
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
SharedModule.forRoot()
]
...