2017-04-27 3 views
1

Ich kann nicht scheinen, die Polyfill der Internationalisierung API zu arbeiten. Wie in der Dokumentation angegeben (https://angular.io/docs/ts/latest/guide/pipes.html) braucht man einfach ein Skript index.html hinzuzufügen:Angular 4/Angular-cli: Datum Polyfill mit Internationalisierung API funktioniert nicht

<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Intl.~locale.de"></script> 

Und alle Probleme mit falsch angezeigten Datum Rohre sollten nun verschwunden sein. Dieses Problem besteht jedoch weiterhin.

Auf einer anderen Webseite (https://coryrylan.com/blog/adding-the-internationalization-polyfill-to-a-angular-cli-project), fand ich eine bevorzugte Lösung der Installation Internationalisierung API und Hinzufügen von polyfills.ts in angular src Ordner.

Man sollte npm run install intl --save und dann importieren Sie die Intl Polyfill wie import 'intl'; import 'intl/locale-data/jsonp/de.js';, aber das funktioniert auch nicht.

Hat jemand Erfolg mit dem Hinzufügen des Datums Polyfill zu Angular 4?

Einige haben vorgeschlagen, ein benutzerdefiniertes Rohr von moment.js zu verwenden, aber das kann für mich keine Lösung sein (Angular2 date pipe does not work in IE 11 and edge 13/14), da solch ein starkes Tier wie eckig eine solche Funktionalität bieten sollte. Vielleicht habe ich etwas falsch gemacht?

+1

scheint wie cdn.polyfill.io cdn serviert keine js Polyfills. könnte ein cdn Problem an ihrem Ende sein. selbst die Live-Beispiele geben keinen Code zurück, nur einen Kommentar: https://cdn.polyfill.io/v2/docs/examples. Der bevorzugte Ansatz ist in der Tat mit NPM und Importieren der Pollyfill Sie benötigen –

+0

Vielen Dank für Ihre Antwort, haben Sie es funktioniert? – BigPenguin

+0

habe nicht versucht, nicht sicher, was zu erwarten ist? Wenn es funktioniert, wie würdest du es wissen? Wie würdest du es testen? Könnten Sie einen Beispielcode einrichten, den ich mit der erwarteten Ausgabe mit und ohne intl/de auf meinem lokalen Rechner ausprobieren kann? –

Antwort

0

Sie können angulars datePipe nicht verwenden, um Datumsangaben zu formatieren. So funktioniert das: | date: 'HH:mm' Dies funktioniert in Chrom, aber nicht in der Kante zur Anzeige: 08:15. Sie können dazu die 'shortTime'-Pipe von Angular verwenden.

EDIT 2017.08.05: Wer immer noch Probleme mit InternationalizationAPI in Safari konfrontiert: Achten Sie darauf, ein Datum wie {{"2016-07-03T12:33Z" | date 'dd.MM.yyyy'}} geben, so dass Sie eine ISO-String-Darstellung davon müssen für sie (nur erforderlich, in Safari) arbeiten, dank Apfel.

Verwandte Themen