在Angualr 6应用程序中,我试图使用i18n-iso-countries库(JavaScript)将国家/地区代码转换为国家/地区名称。 我使用npm
安装了它npm -i i18n-iso-countries
然后在我的组件中按如下所示导入它:
从'i18n-iso-countries'导入*作为i18IsoCountries;
我正在这样使用它:
let valueName = '';
tmpArr = tmpArr.map((e) => {
const tmp = e.split('_')[1];
console.log('tmp: ' + tmp);
// console.log(i18IsoCountries);
valueName = i18IsoCountries.getName(tmp, 'en');
return tmp;
}
但是valueName是未定义的。
我还在Stackblitz here.中创建了类似的设置 您可以看到getName的输出未定义,但是getAlpha2Codes()的输出返回值。
答案 0 :(得分:2)
缺少导入区域设置文件。 i18nIsoCountries.registerLocale(require(“ i18n-iso-countries / langs / en.json”));
Stackblitz https://stackblitz.com/edit/angular-qbmbwq
答案 1 :(得分:2)
我刚发现语言需要注册。该文档有点混乱
如果将i18n-iso-countries与Node.js一起使用,则操作完成。
但是您要做需要注册要使用的语言。
因此在Angular 6中,您需要:
npm install i18n-iso-countries --save
然后在您的组件中:
import * as i18nIsoCountries from 'i18n-iso-countries';
然后在ngOnInit()
i18nIsoCountries.registerLocale(require("i18n-iso-countries/langs/en.json"));