我将我的 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";
解决了这个问题。
关于angular - 日期管道错误-升级到 Angular 11 时无法读取未定义的属性 'toLowerCase',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66391797/