保存后避免解析

骨干文件说,

只要模型的数据由服务器返回,在获取和保存时调用解析。 该函数传递原始响应对象,并返回要在模型上设置的属性哈希值。

但是我为我的模型定制了解析函数。 我只想在我保存数据时取出数据时才执行它。

有没有办法做到这一点? 我可以在解析函数中检查我的响应。 但是有没有内置选项可以做到这一点?


这是关于保存模型的主干源文件:

var model = this;
var success = options.success;
options.success = function(resp) {
    model.attributes = attributes;
    var serverAttrs = model.parse(resp, options);
    if (options.wait) serverAttrs = _.extend(attrs || {}, serverAttrs);
    if (_.isObject(serverAttrs) && !model.set(serverAttrs, options)) {
        return false;
    }
    if (success) success(model, resp, options);
    model.trigger('sync', model, resp, options);
};

您可以在save传递一个自定义选项,如: model.save(null, { saved: true }) ,然后在您的自定义parse

parse: function(response, options) {
    if ( options.saved ) return this.attributes;
    // do what you're already doing
}

我还没有测试过,但至少应该让你开始。


只需将一个parse:false传递给save方法即可。

m = new MyModel()
s.save(null, {parse: false})
链接地址: http://www.djcxy.com/p/67077.html

上一篇: Avoid parse after save

下一篇: Backbone save without set on callback