保存事件前后的主干js

backbone js before and after save events

本文关键字:js 事件 保存      更新时间:2023-09-26

我们需要能够处理从主干保存事件的前后。

基本上,当我们有大量的保存发生时,我们想要显示一个"Saving…"消息。不确定Backbine如何处理批量保存,但如果有一个队列,我们希望能够在批量处理之前显示,然后在完成后删除。

在Backbone中有这样的东西吗?

在调用save之前,只需显示您的消息。这是before

对于after,你可以传入success函数。save方法有2个可选参数。唯一需要注意的是,第一个必须是属性。

yourModel.save({
    attr1: attr1,
    attr2: attr2
},
{
    success: function(model, response)
    {
        //do whatever
    }
});

如何重写Backbone.Model.save ?快速摧毁'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;
}