Sto usando Backbone.js (versione 0.5.3) e sto avendo qualche problema con una callback di successo quando saving a model. Non viene eseguito, anche se il modello è stato salvato correttamente sul server.Perché viene chiamato il mio callback di errore di Backbone.js anche se Rails sta presumibilmente restituendo una risposta di successo?
CoffeeScript:
console.log 'in switch_private'
console.log "private_entry attribute is currently #{@model.get('private_entry')}"
@model.save {'private_entry': true},
success: ->
console.log 'in success'
Compilato Javascript:
console.log('in switch_private');
console.log("private_entry attribute is currently " + (this.model.get('private_entry')));
return this.model.save({
'private_entry': true
}, {
success: function() {
return console.log('in success');
}
});
uscita della console:
in switch_private
private_entry attribute is currently false
XHR finished loading: "http://localhost:3000/entries/235".
sto tornando head :ok
dall'azione aggiornamento in Ruby on Rails.
L'aggiunta degli argomenti del modello e della risposta, in modo che sia success: (model, response) ->
, non faccia differenza. Cosa sta andando storto?
MODIFICA: Come suggerito da Trevor Burnham, ho aggiunto un callback di errore ed è in esecuzione. Quindi, cosa dovrei tornare dall'azione Ruby on Rails affinché Backbone consideri il salvataggio un successo? Al momento ho head :ok
EDIT 2: Ecco il mio JavaScript aggiornato compilato:
var this_view;
this_view = this;
return this.model.save({
'private_entry': !(this.model.get('private_entry'))
}, {
success: function(model, response) {
return console.log('in success');
},
error: function(model, response) {
return console.log('in error');
}
});
Ecco la richiesta PUT:
Cosa succede se si aggiunge anche un callback 'error'? Viene chiamato? –
Grazie per il suggerimento, ho modificato la domanda. – ben
Ho modificato il titolo della domanda. Potresti voler riscriverlo meglio di così:/ – hugomg