我們需要能夠處理骨幹之前和之後保存事件。保存事件之前和之後的骨幹js
基本上,當我們有一個保存的負載發生,我們想顯示一個「保存...」的消息。不知道Backbine如何處理批次保存,但如果有一個隊列我們希望能夠在處理批處理之前顯示,然後在處理完成後移除。
Backbone中是否有這樣的東西?
我們需要能夠處理骨幹之前和之後保存事件。保存事件之前和之後的骨幹js
基本上,當我們有一個保存的負載發生,我們想顯示一個「保存...」的消息。不知道Backbine如何處理批次保存,但如果有一個隊列我們希望能夠在處理批處理之前顯示,然後在處理完成後移除。
Backbone中是否有這樣的東西?
在您撥打保存之前,只需顯示您的信息。所以有以前的情況。
至於後面你可以傳遞成功函數。 save方法需要2個可選參數。唯一的警告是,第一個總是必須是屬性。
yourModel.save({
attr1: attr1,
attr2: attr2
},
{
success: function(model, response)
{
//do whatever
}
});
如何覆蓋Backbone.Model.save
?快速執行:
Backbone.Model._amountOfModelsSaving = 0;
Backbone.Model._save = Backbone.Model.save;
Backbone.Model.save = function() {
if (Backbone.Model._amountOfModelsSaving === 0) {
// Show the message
}
Backbone.Model._amountOfModelsSaving++;
var request = Backbone.Model._save.apply(this, arguments);
request.always(function() {
Backbone.Model._amountOfModelsSaving--;
if (Backbone.Model._amountOfModelsSaving === 0) {
// Hide the message
}
});
return request;
}
這很麻煩,因爲我們必須在我們稱之爲保存的任何地方執行此操作。另外 - 這對集合沒有好處:( – iwayneo
)你可以在mixin中抽象出這個行爲(一個包含函數的散列對象),並將它包含在視圖中 – dira
是的,我從來沒有說過我認爲它很漂亮。一個簡單的方法就是使用模型現有的屬性,不幸的是,如果不先傳入某個屬性參數,就無法傳遞成功函數來保存。 – mccow002