如何解决日期管道错误 - 升级到 Angular 11 时无法读取未定义的属性“toLowerCase”
我将 Angular 应用从 v10 升级到 v11。
它使用一些标准(非自定义)管道 - 日期、货币、大写等。
日期和货币现在给我错误。例如:
core.js:5980 ERROR Error: InvalidPipeArgument: 'Cannot read property 'toLowerCase' of undefined' for pipe 'DatePipe'
我只是像以前一样为 std 管道导入 CommonModule:
import { CommonModule } from '@angular/common';
解决方法
我的问题是我的 app.module.ts 中有这个:
{
provide: LOCALE_ID,useFactory: (translate: TranslateService) => {
switch (translate.currentLang) {
case "en":
case "en_GB":
registerLocaleData(localeEN)
break;
case "es":
case "es_ES":
registerLocaleData(localeES)
break;
default:
registerLocaleData(localeEN)
break;
}
return translate.currentLang;
},deps: [TranslateService]
},
但是 return translate.currentLang;
是 undefined
并且返回 undefined
是导致此错误的原因。因此将其更改为 return translate.currentLang != undefined ? translate.currentLang : "en";
解决了问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。