2016-07-13 8 views
-1

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\"]"} 
+0

Was ist Ihr 'model.toJSON()'? –

+0

Es enthält nicht die Anführungszeichen – Clayton

+0

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. –

Antwort

Verwandte Themen