Ren*_*ler 4 angular-material angular angular6
我已经实现了一个CustomDateAdapter,如下所述:https : //medium.com/@esanjiv/working-with-custom-dateadapter-for-angular-material-2-datepicker-76d4446277dc
现在,我正在进行Angular Material 6迁移,并且出现以下错误
core.js:1598 ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'TRIDENT' of undefined
TypeError: Cannot read property 'TRIDENT' of undefined
at CustomDateAdapter.NativeDateAdapter [as constructor] (core.es5.js:792)
at new CustomDateAdapter (custom-date-adapter.ts:21)
at _createClass (core.js:9262)
...
Run Code Online (Sandbox Code Playgroud)
core.es5.js第792行是这样的:
_this.useUtcForDisplay = !platform.TRIDENT;
Run Code Online (Sandbox Code Playgroud)
似乎平台未定义。
我注意到NativeDateAdapter的构造函数已在材料6中进行了更改,它还需要一个平台作为输入。
constructor(matDateLocale: string, platform: Platform);
Run Code Online (Sandbox Code Playgroud)
我缺少什么?如何在Angular Material 6中实现CustomDateAdapter?
我有同样的问题。这是我的解决方法。
// in your shared or main.module.ts
// … other imports
import {Platform, PlatformModule} from '@angular/cdk/platform';
@NgModule({
imports: [
// …
PlatformModule
],
exports: [
// …
PlatformModule
],
providers: [
{provide: DateAdapter, useClass: YourCustomDateAdapter, deps: [MAT_DATE_LOCALE, Platform]},
]
});
export class SharedModule {
}
Run Code Online (Sandbox Code Playgroud)
而且您还没有覆盖YourCustomDateAdapter的构造函数。