मेरे पास एक कोणीय 2 अनुप्रयोग है। एक सेवा एक API ऐसे ही परिणाम देता है से अनुरोध डेटा है निम्नलिखित:कोणीय 2 दिनांक deserialization
{
"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);
}
और अपने मॉडल इस तरह:
export class SomeModel {
constructor(
public id: number,
public timestamp: Date,
public sourceDatabaseServer: string,
public sourceDatabaseName: string,
public targetDatabaseServer: string,
public targetDatabaseName: string
) { }
}
सब कुछ है जैसे कि यह काम कर रहा था लेकिन देखा जब मैं इतना {{item.timestamp | date:'short'}}
तरह DatePipe का उपयोग कर टाइमस्टैम्प प्रदर्शित करने के लिए आवेदन निम्न त्रुटि संदेश के साथ चल रही है की कोशिश की: मुझे विश्वास है कि टाइमस्टैम्प वास्तव में नहीं है
Invalid argument '2016-04-17T19:40:38.2424240+01:00' for pipe 'DatePipe' in [{{result.timestamp | date:'short'}}
कुछ जांच के बाद Date
प्रकार में परिवर्तित किया जा रहा है, लेकिन इसके बजाय बस string
सेट किया जा रहा है। मुझे लगता है कि यह Date
प्रकार Response.json()
पर ज्ञात नहीं है? या मैं पूरी तरह से कुछ और याद कर रहा हूँ? क्या इसके लिए कोई फिक्स या काम है?
आप एक '.json()' कि एक स्ट्रिंग (भले ही वह कुछ दिनांक स्वरूप में है) एक वास्तविक तिथि वस्तु को बदलना नहीं होगा करते हैं। यह एक स्ट्रिंग बने रहेंगे। इसलिए आपको 'नई तिथि (HerePassTheString) ' – arg20
करने की आवश्यकता है यदि आप इसे केवल प्रदर्शित कर रहे हैं, तो कोणीय 2 में डेटपइप अब आईएसओ स्ट्रिंग प्रारूप का उपयोग कर सकता है। https://angular.io/docs/ts/latest/api/common/index/DatePipe-pipe.html मुझे नहीं पता कि यह हमेशा मामला रहा है, लेकिन अब यह है। ;) – Derrick