我正在使用Backbone.js(版本0.5.3),並且在saving a model時遇到了一些成功回調的問題。即使模型已成功保存在服務器上,它仍未運行。爲什麼我的Backbone.js錯誤回調被調用,即使Rails應該返回成功響應?
的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".
我從Ruby on Rails中的更新操作返回head :ok
。
添加模型和響應參數,使其爲success: (model, response) ->
,沒有什麼區別。出了什麼問題?
編輯: 根據Trevor Burnham的建議,我添加了一個錯誤回調,它正在運行。那麼我應該從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請求:
3210
如果你添加一個'error'回調函數呢?它會被叫嗎? –
感謝您的建議,我編輯了這個問題。 – ben
我編輯了問題標題。你可能想重寫它比這更好:/ – hugomg