Ho esaminato più post su come salvare una raccolta Backbone utilizzando un server non RESTful e sono ancora un po 'confuso. Ho creato una raccolta in cui ho sovrascritto il metodo toJSON
per personalizzare i miei dati per la pubblicazione sulla mia API ("/api/entity/735/request/personDelete"
attualmente scambiato per jsfiddles/echo/json). Quindi ho creato un metodo save
che utilizza Backbone.sync
, su success
Sto disconnettendo qualsiasi tipo di risposta e l'oggetto è vuoto, non sono sicuro dove le cose si perdono o cosa sto facendo male; qualcuno può darmi qualche consiglio? Vorrei solo fare in modo che questo esempio funzioni in modo da poter usare qualcosa di simile in futuro.Backbone: salvataggio di un'intera raccolta su un server non RESTful
JS
var PersonCollection = Backbone.Collection.extend({
model: PersonModel,
url: function() {
// Dummy JSFiddle endpoint
// Example non-RESTful url "/api/entity/735/request/personDelete"
return '/echo/json/';
},
/**
* Override toJSON to loop through collection models making
* custom objects containing specific attributes to be posted.
*/
toJSON: function() {
console.log(this.models);
var plucked = this.models.map(function(model) {
return _.pick(model.toJSON(), ["id","name", "teams"])
});
console.log(plucked);
return plucked;
},
save: function(options) {
Backbone.sync('create', this, {
success: function(data, textStatus, jqXHR) {
console.log('Saved!', data);
}
});
}
});
JSFiddle:http://jsfiddle.net/kyllle/f1h4cz7f/3/
controllo Plase se la richiesta viene fatta, i parametri vengono passati come previsto (cosa di cui dubito) e si ottiene una risposta 2xx. Modifica il tuo post e specifica come dovrebbe apparire una richiesta (ad esempio form-encoded o application/json ecc.). Direi che l'evento 'Backbone.sync()' potrebbe non essere adatto alle tue esigenze. Probabilmente vorrai usare '$ .ajax()' direttamente in 'save()' oppure, se hai più modelli e collezioni che comunicano con quell'API REST "non standard" potresti sovrascrivere 'Backbone.sync() invece. –
Questa è una parte del mio problema in questo momento, non sono sicuro di dove o come ho bisogno di passare i parametri in modo che il salvataggio possa essere eseguito in modo efficace? – styler
Hai davvero intenzione di salvare tutto all'interno della collezione? So che hai detto che il tuo back-end non è RESTful, ma che cosa si aspetta il tuo back-end? e come si aspetta json? –