
Backbone 函式庫
|
213
前伺服器已經有這筆資料,它會發送一組 PUT(修改)請求。否則的話,
save()
會發送
一組 POST(新增)請求:
var user = new User();
user.set({name: "Bernard"});
user.save(null, {success: function(){
// user 儲存成功
}});
save()
函式是以非同步的方式呼叫,可以利用
success
和
failure
等設定值,來設
定 Ajax 請求的回叫函式。事實上,如果你的 Backbone 是搭配 jQuery 使用,所有傳
入
save()
的設定值都會直接被轉送進
$.ajax()
裡。也就是說,在儲存模型時,所
有 jQuery 所提供的 Ajax 設定值都可以使用(
http://api.jquery.com/jQuery.ajax
),像是
timeout
。
如果伺服器有回報錯誤,且模型儲存失敗,就會觸發該模型的
error
事件。如果伺服器
回報成功,模型的資料就會被更新:
var user = new User();
user.bind("error", function(e){
// 伺服器回報錯誤!
});
user.save({email: " 不正確的電子郵件信箱 "});
fetch()
函式會重新整理模型內容,這個函式會再向伺服器發出請求(透過 GET 請求),
取得模型的所有屬性值。如果遠端的模型屬性值和目前用戶端的模型屬性值不一致,就
會觸發
change
事件: