2016-07-25 12 views
2

Ich habe einen Rails-Server, der ein MySQL-Datum liefert. Meine Klasse basiert auf dem AngularDart-Tutorial. Es scheint nicht korrekt zu laden.JSON-Datum in Dart DateTime laden

Mein artist_service. dart-Methode:

Future<List<Record>> getArtistsRecords(int id) async { 
    String url = 'http://catbox.loc/artists/${id.toString()}/records'; // Rails: artists/:id/records 
    try { 
     HttpRequest response = await HttpRequest.request(
      url, requestHeaders: headers); 
     List data = JSON.decode(response.responseText); 
     final records = data 
      .map((value) => new Record.fromJson(value)) 
      .toList(); 
     return records; 
    } 
    catch (e) { 
     throw _handleError(e); 
    } 
    } 

Meine artist.dart Factory-Methode:

factory Record.fromJson(Map<String, dynamic> record) => 
    new Record(_toInt(record['id']), 
     record['title'], 
     record['catalog'], 
     record['artist_id'], 
     record['label_id'], 
     record['style_id'], 
     record['alternate_catalog'], 
     record['recording_date'], 
     record['notes'], 
     record['penguin'], 
     record['category'] 
); 

Das beanstandete Element ist recording_date, die als DateTime deklariert wird. Wenn ich in HTML als {{recording_date}} einschließe, bekomme ich zum Beispiel 1958-03-09. Wenn ich versuche, {{ recording_date | date}} es als ungültiges Format ausgibt. Ich vermute, dass ich das Objekt DateTime nicht korrekt aufstelle. Ist es möglich, dies mit der Fabrikmethode zu tun?

Antwort

2

Änderung

record['recording_date'], 

zu

DateTime.parse(record['recording_date']),