Ich bin ein ziemlich einfach Backbone.js tun model.save:Backbone.js Modell doppelte Anführungszeichen Array in AJAX-Request speichern setzt
this.model.save(null, {
success: function(model, response)
{
},
error: function(model, response)
{
}
});
Das Modell einig String-Attribut enthält, und ein Array von Objekten. Wenn ich mir die rohe Ajax-Anfrage von Backbone anschaue (mit jQuery ajax, glaube ich), wird das Array in Anführungszeichen gesetzt. Dies bewirkt, dass mein Endpunkt versuchen, den Wert als Zeichenfolge zu analysieren, anstatt ein Array:
{
id: 108,
name: "My model",
questions: "[{"id": 100, "name": "question 1"}, {"id": 101, "name": "question 2"}]"
}
Hat jemand begegnet, bevor? Gibt es eine Möglichkeit Backbone zu zwingen/jQuery, um das Array in Anführungszeichen nicht zu wickeln, das heißt:
questions: [{"id": 100, "name": "question 1"}, {"id": 101, "name": "question 2"}]
aktualisieren, Backbone-Sync-Funktion aufruft JSON.stringify am Ausgang des model.toJSON und JSON.stringify ist Was fügt diese Zitate hinzu? Zum Beispiel:
console.log(JSON.stringify({name: 'test1', animals: ['horse', 'pig']}));
Ausgänge:
{"name":"test1","animals":"[\"horse\", \"pig\"]"}
Was ist Ihr 'model.toJSON()'? –
Es enthält nicht die Anführungszeichen – Clayton
Sie könnten versuchen, einen Haltepunkt (oder tippen Sie Debugger;) hier: https://github.com/jashkenas/backbone/blob/master/backbone.js#L1407 Ich denke, wenn Sie sind durch diesen Code gegangen, Sie könnten herausfinden, wo es passiert. –