我试图在Angular-Cli中使用Syncfusion EJ2的国际化功能和WebPack,这是有问题的,因为所有文档都使用SystemJs.
特别是我正在尝试使用这个样本
http://plnkr.co/edit/4uA2rb0Q2FrLLK6V4sne
import { L10n,loadCldr,setCulture,setCurrencyCode } from '@syncfusion/ej2-base'; import * as currencies from './currencies.json'; import * as cagregorian from './ca-gregorian.json'; import * as numbers from './numbers.json'; import * as timeZoneNames from './timeZoneNames.json'; import * as numberingSystems from './numberingSystems.json'; import { Component,OnInit } from '@angular/core'; import { data } from './datasource'; loadCldr(currencies,cagregorian,numbers,timeZoneNames,numberingSystems); setCulture('de-DE'); setCurrencyCode('EUR');
我尝试但无法使它工作,我坚持这个错误:
找不到模块’./numberingSystems.json’
我应该对样品做出哪些改变?
解决方法
为了在typescript中导入json文件,我们需要在通配符卡模块声明中包含json类型(
https://www.typescriptlang.org/docs/handbook/modules.html#wildcard-module-declarations).使用typings.d.ts文件中的以下声明代码来解决编译问题.
declare module "*.json" { const value: any; export default value; }
注意:您还可以通过安装npm软件包cldr-data来使用cldr json文件.此包包含所有文化json文件.