我们需要能够处理来自骨干的保存事件之前和之后。
基本上,当我们发生大量保存时,我们想要显示“正在保存...”消息。不确定Backbine如何处理批量保存,但如果有一个队列,我们希望能够在批处理之前显示,然后在完成后删除。
Backbone中有这样的东西吗?
答案 0 :(得分:2)
在致电保存之前,只需显示您的消息即可。所以有以前的情况。
至于之后,你可以传递成功功能。 save方法有2个可选参数。唯一需要注意的是,第一个必须始终是属性。
yourModel.save({
attr1: attr1,
attr2: attr2
},
{
success: function(model, response)
{
//do whatever
}
});
答案 1 :(得分:1)
覆盖Backbone.Model.save
怎么样? Quick'n'dirty实施:
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;
}