私は角度2のアプリケーションを持っています。サービスは、次のような結果を返すAPIからの要求データである:角度2日付の逆シリアル化
{
"data":[
{"id":1,"timestamp":"2016-04-17T19:52:53.4510935+01:00","sourceDatabaseServer":"127.0.0.1","sourceDatabaseName":"Database1","targetDatabaseServer":"192.168.99.101","targetDatabaseName":"Database2"},
{"id":2,"timestamp":"2016-04-17T19:52:53.4510935+01:00","sourceDatabaseServer":"127.0.0.2","sourceDatabaseName":"Database3","targetDatabaseServer":"192.168.99.102","targetDatabaseName":"Database4"},
{"id":3,"timestamp":"2016-04-17T19:52:53.4510935+01:00","sourceDatabaseServer":"127.0.0.3","sourceDatabaseName":"Database5","targetDatabaseServer":"192.168.99.103","targetDatabaseName":"Database6"}
]
}
マイ角度2サービスは、(私たちはここで幸せな道にしているとして、私は簡潔にするためにエラー処理をカットしました)このようになります:
getList() : Observable<SomeModel[]> {
return this._http.get(this._getListUrl).map(this.extractData);
}
private extractData(res: Response) {
return res.json().data || {};
}
と、このように私のコンポーネント:このような
results: SomeModel[];
errorMessage: string;
ngOnInit() {
this._someService.getList()
.subscribe(
results => this.results = results,
error => this.errorMessage = <any>error);
}
と私のモデル:
私はタイムスタンプが、実際にはないことを信じてInvalid argument '2016-04-17T19:40:38.2424240+01:00' for pipe 'DatePipe' in [{{result.timestamp | date:'short'}}
いくつかの調査の後:私は、アプリケーションが次のエラーメッセージで吹くので{{item.timestamp | date:'short'}}
ようDatePipeを使用して、タイムスタンプを表示しようとしたとき
すべてが、それはしかし、働いていたように見えましたDate
タイプに変換されますが、代わりにstring
に設定されています。私はこれがDate
型が知られていないので、これはと呼ばれていると思いますか?または私は何か他のものが完全に欠けていますか?この問題を解決する方法はありますか?
あなたは、実際の日付オブジェクトに(それはいくつかの日付形式でだとしても)文字列を変換しません '.jsonを()'行うと。それは文字列であり続けます。 'new Date(herePassTheString)'を実行する必要があります – arg20
これを表示するだけの場合、Angular 2のDatePipeはISO文字列フォーマットを使用できるようになりました。 https://angular.io/docs/ts/latest/api/common/index/DatePipe-pipe.htmlこれはいつもそうだったかどうかは分かりませんが、今のところです。 ;) – Derrick