Ich habe gerade versucht, ein einfaches date
Rohr in meinem angular2 App zu verwenden:Angular2 DatePipe Verarbeitung ISO 8601 Datum (ungültiges Argument '*' für Pipe 'DatePipe')?
Registered: {{user.registered | date:'shortDate'}}
Der Fehler, den ich bekommen ist:
Invalid argument '2016-03-28T07:25:40.824Z' for pipe 'DatePipe' in [{{user && user.registered | date:'shortDate' }} in [email protected]:57]
Ich habe eine User-Modell (minimal hier) Geteilt zwischen dieser Komponente und einigen anderen:
export class User { public registered: Date; }
Ich bekomme die Benutzerdaten als JSON vom Backend, und es ist ein ISO 8601: 2016-03-28T07:26:01.202Z
.
Wenn ich mein eigenes benutzerdefiniertes Rohr verwende, funktioniert es (Beispiel unten).
import {Pipe, PipeTransform} from 'angular2/core';
/**
* The default ISO Date is not parseable by ts compiler or some such.
*/
@Pipe({ name: 'betterDate' })
export class BetterDatePipe implements PipeTransform {
transform(date: number): string {
let d = new Date(date);
return d.toLocaleDateString();
}
}
Der Name, BessereDatePipe ist offensichtlich ein Wortspiel auf mich besser angular2 Code zu schreiben dann die Erfinder;)
Hmm. Wohin soll das gehen, im Konstruktor der User-Klasse oder so? Ich bekomme eine Reihe von Benutzern von json (angular2/http, dann ' response.json()' - so weiß ich nicht, was genau zu tun, um diese zu konvertieren. –
Zlatko
Siehe hier http://StackOverflow.com/Questions/ 36868856/asp-net-webapi-datetimeoffset-serialize-zu-json-javascript-angular2 – iwhp