Ich habe eine Polymer-Paketstruktur aus der App-Schublade-Vorlage, mit einem Ordner namens src. In diesem Ordner habe ich eine Datei namens entries.json. Ich versuche herauszufinden, wie Elemente zu diesem JSON-Objekt hinzugefügt werden, wenn ein Benutzer Formulardaten aus einem Papierdialogfeld sendet. Ich verstehe, wie man die Werte von diesem Formular bekommt. Ich kann nicht herausfinden, wie ich den Inhalt aus der JSON-Datei holen und ein neues Element zu diesem JSON hinzufügen und dann das neue Element wieder in die JSON-Datei schreiben kann.In JSON-Datei in Javascript schreiben
hier ist meine Form:
<paper-dialog id="applynow" entry-animation="scale-up-animation" exit-animation="fade-out-animation">
<paper-dialog-scrollable>
<img src="/images/logo.png" width="80%" height="auto" style="margin: 0 auto;"/>
<paper-input id="name" label="Full Name"></paper-input>
<paper-input id="phone" label="Phone Number"></paper-input>
<paper-input id="email" label="Email"></paper-input>
<paper-textarea id="desc" label="Why Pick You?" char-counter maxlength="400"></paper-textarea>
<paper-button on-click="submitForm">Submit</paper-button>
</paper-dialog-scrollable>
</paper-dialog>
Und hier ist die javascript:
submitForm: function() {
var data = JSON.parse("/src/entries.json");
data.entries.push({
name: this.$.name.value,
phone: this.$.phone.value,
email: this.$.email.value,
desc: this.$.desc.value
});
data = JSON.stringify(data);
}
ich versucht haben, aber ich aus der Chromkonsole sehen, dass, wenn ich JSON.parse() es erwartet, dass die Eingabe eine json-formatierte Zeichenfolge ist und kein Dateipfad. Gibt es eine Möglichkeit, aus dieser Datei zu lesen und dann in Javascript zurück zu schreiben? Diese Datei wird nicht im Speicher des Benutzers, sondern nur in meiner Paketstruktur gespeichert.
EDIT:
Dank chrisv ich in der Lage war, meine Json zu lesen und anhängen, aber ich brauche noch einen Weg, um diese JSON-Datei neu zu schreiben. Hier ist meine neue JavaScript-Funktion, die erfolgreich meine JSON-Datei greifen wird, einen neuen Eintrag hinzufügen und dann in der Konsole anzeigen. Gibt es eine einfache Möglichkeit, diese .json-Datei mit der neuen Zeile neu zu schreiben?
submitForm: function() {
var newName = this.$.name.value;
var newPhone = this.$.phone.value;
var newEmail = this.$.email.value;
var newDesc = this.$.desc.value;
var json = $.getJSON("src/entries.json", function(data) {
data.entries.push({
name: newName,
phone: newPhone,
email: newEmail,
desc: newDesc
});
console.log(data);
});
}
Sie würden einen Service benötigen, die die neuen Einträge nimmt und speichert sie in der Datei . Da sie nicht im Speicher des Benutzers sind, gibt es keine Möglichkeit, auf sie zu schreiben, außer über den Server. Vielleicht möchten Sie überdenken, wie Sie die Datei erhalten und speichern. –
Ich entschied mich, mit dem Weg des Umdenkens zu gehen, wie ich diese Information speichern kann. Ich habe bereits Firebase für das Hosting verwendet, also ging ich einfach mit dem Firebase-Datenspeicher. –