2017-09-15 3 views
5

Ich versuche, die Internationalisierungsfeatures von Syncfusion EJ2 in Angular-Cli mit WebPack zu verwenden, was problematisch ist, da die gesamte Dokumentation SystemJs verwendet.Internationalisierung in Syncfusion Ej2 mit WebPack

Insbesondere Ich versuche, diese Probe 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'); 

ich aber nicht zu arbeiten, ich bin zu diesem Fehler stecken machen könnte versucht zu verwenden: nicht Modul‘./numberingSystems gefunden. json '

Welche Änderungen sollte ich an der Probe vornehmen?

Antwort

8

Um die JSON-Dateien in das Typoskript zu importieren, müssen wir den JSON-Typ in die Deklaration des Wildcard-Kartenmoduls (https://www.typescriptlang.org/docs/handbook/modules.html#wildcard-module-declarations) einfügen. Verwenden Sie den folgenden Deklarationscode in der Datei typings.d.ts, um das Kompilierungsproblem zu beheben.

declare module "*.json" { 
    const value: any; 
    export default value; 
} 

Hinweis: Sie können auch die CLDR json-Dateien verwenden, indem Sie die npm Paket CLDR-Daten installieren. Dieses Paket enthält alle Kulturen JSON-Dateien.

+0

Jetzt funktioniert wie erwartet, danke. Ich habe das clrd-data-Paket installiert, ich importiere die Dateien auf diese Weise import * als Zahlen von '../../node_modules/cldr-data/main/es-AR/numbers.json'; Es gibt einen "besseren" Weg? –

+0

Die JSON-Dateien können auch mit require importiert werden, wie im folgenden Abschnitt erwähnt. loadCldr (require ('../../ node_modules/cldr-data/main/de/numbers.json')); Um das require in der anguar-cli App zu verwenden, müssen wir die requires in der Datei typings.d.ts deklarieren, wie im folgenden Snippet deklarieren var require: any; –