Używam Backbone.js (wersja 0.5.3) i mam pewne problemy z powodzeniem oddzwonić, gdy saving a model. Nie jest uruchamiany, mimo że model został pomyślnie zapisany na serwerze.Dlaczego wywoływana jest funkcja wywołania zwrotnego błędu Backbone.js, mimo że Rails rzekomo zwraca odpowiedź powodzenia?
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'
Zestawione 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');
}
});
wyjście konsoli:
in switch_private
private_entry attribute is currently false
XHR finished loading: "http://localhost:3000/entries/235".
Wracam head :ok
z działaniem aktualizacja w Ruby on Rails.
Dodanie argumentu modelu i odpowiedzi, aby było success: (model, response) ->
, nie ma znaczenia. Co idzie źle?
EDYTOWANIE: Zgodnie z sugestią Trevora Burnhama, dodałem błąd zwrotny i jest uruchamiany. Więc co powinienem wracać z działania Ruby on Rails, aby Backbone mógł pomyśleć o sukcesie? W tej chwili mam head :ok
EDIT 2: Tu jest mój zaktualizowany skompilowane JavaScript:
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');
}
});
Oto żądanie PUT:
Co jeśli dodasz również wywołanie "błąd"? Czy to się nazywa? –
Dzięki za sugestię, zredagowałem pytanie. – ben
Edytowałem tytuł pytania. Możesz napisać coś jeszcze lepiej:/ – hugomg