2017-05-05 4 views
0

Ich habe ein Problem, wo ich mongoDB verwende, um Daten als Teil von Objekten zu speichern, und ich mache diese Objekte auf der Vorderseite frei Ende mit Meteor und Angular. Was es mir gibt, ist fast richtig, aber da ich versuche, die Datenbindung beizubehalten, kann ich nicht herausfinden, wie ich die Objekte manipuliere, bevor ich sie Meteor gebe.Wie konvertiert man MongoDB ISODate mit Eingabe kompatibel [type = "date"]

Ich glaube, was ich tun muss, ist jedes Objekt, das die db.table.find() Abfrage entspricht, vor der Rückgabe an Meteor zu ändern.

Die Objekte in der Tabelle haben folgende Struktur:

{ 
    date: ISODate(2017-05-04T14:00:00Z), 
    note: "Foo" 
} 

ich sie so bin Veröffentlichung:

Meteor.publish('tasks', function tasksPublication() { 
    var tasks = Tasks.find(); 
    return tasks; 
}); 

Das vordere Ende wie dieses angeschlossen ist.

<label>Date: <input type="date" ng-value="{{task.date}}" /> </label> 

Das Problem dabei ist das Format des Datums: es enthält alles, was von dem „T“, wenn es nicht, dass ein Teil für die Eingabe von Datumsfeldern haben sollte. Wie ändere ich das Objekt auf dem Weg aus der Datenbank?

Antwort

1

Sie müssen das Datum zu formatieren Sie eine Bibliothek wie moment.js

mit meteor npm install moment --save

import moment from 'moment'; 

const date = ISODate(2017-05-04T14:00:00Z); 

const formattedDate = moment(date).format('DD-MM-YYYY'); //04-05-2017 

You can read all about formatting using moment here:

Ich habe nicht Angular verwendet, bevor so ich bin nicht sicher, wie es zu implementieren mit die Winkellogik, aber wenn Sie eine Art von einem Modul namens schreiben, können Sie es wieder und wieder verwenden

import moment from 'moment'; 

const formatDate = (date) => { 
    return moment(date).format('DD-MM-YYYY'); //change the format string to your preference 
} 

export default formatDate; 

Dann können Sie diese Funktion überall verwenden Sie mit Daten in der Anwendung befassen:

import formatDate from '/path/to/formatdate'; 
+0

Vielen Dank für die Antwort. Ich bin auch nicht sehr vertraut mit Meteor oder Angular, also zu verstehen, wie Daten fließen, ist ein bisschen verwirrend, aber ich werde sehen, ob ich das tun kann. –

Verwandte Themen