保存事件之前和之后的骨干js

时间:2011-11-02 18:32:02

标签: javascript backbone.js

我们需要能够处理来自骨干的保存事件之前和之后。

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

Backbone中有这样的东西吗?

2 个答案:

答案 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;
}
相关问题