Я использую Backbone.js (версия 0.5.3) и у меня возникли проблемы с успешным обратным вызовом при сохранении модели .Он не запускается, даже если модель успешно сохранена на сервере.
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'
Скомпилированный 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');
}
});
Вывод на консоль:
in switch_private
private_entry attribute is currently false
XHR finished loading: "http://localhost:3000/entries/235".
Я возвращаю head :ok
из действия обновления в Ruby on Rails.
Добавление аргументов модели и ответа, так что это success: (model, response) ->
, не имеет значения,Что происходит не так?
РЕДАКТИРОВАТЬ: В соответствии с предложением Тревора Бернхэма, я добавил обратный вызов ошибки, и он выполняется.Итак, что я должен возвращаться из действия Ruby on Rails, чтобы Backbone считал сохранение успешным?На данный момент у меня есть head :ok
РЕДАКТИРОВАТЬ 2: Вот мой обновленный скомпилированный 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');
}
});
Вот запрос PUT:
![enter image description here](https://i.stack.imgur.com/gfkcF.png)