如何使用backbone.js保存而不指定哪些属性但使用回调

Jar*_*ish 7 javascript backbone.js

我想将修改后的模型保存到数据库中(之前设置).如果保存成功重定向到另一个页面(例如,可以是任何其他操作).

Model.save可以有两个可选属性.第一个是属性的哈希,第二个是选项(如成功和错误回调).http://backbonejs.org/#Model-save

 somemodel.set({foo: 'bar'});
//lots of other logic and misc steps the user has to do
 somemodel.save(); //on success should go here
Run Code Online (Sandbox Code Playgroud)

由于属性已经设置,我只需要回调.

过去我做过:

somemodel.save(somemodel.toJSON(), { 
    success: function() { 
        //other stuff
    }
);
Run Code Online (Sandbox Code Playgroud)

或者将值再次传递给save方法

somemodel.save(
    { foo: this.$('input').val()}, 
    { success: function(){}
);
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来清理它.文档说明,如果有新属性,模型将触发更改状态.但是我想要重定向用户(保存新内容或旧/未更改).

这不存在:

somemodel.on('success', function(){}); 
Run Code Online (Sandbox Code Playgroud)

而这只是用于验证:

if(somemodel.save()) { //action }
Run Code Online (Sandbox Code Playgroud)

"同步"也是错误的事件(因为它也适用于销毁)

有帮助吗?

nik*_*shr 12

somemodel.save(
    {}, // or null
    { 
            success: function(){}
    }
);
Run Code Online (Sandbox Code Playgroud)

将允许您使用特定回调保存模型,而无需修改现有密钥.

还有一个小提琴http://jsfiddle.net/h5ncaayu/

为避免将成功回调作为选项传递,您可以