Backbone Model保存客户端和服务器之间的更改循环

时间:2013-04-01 18:54:57

标签: javascript backbone.js

在我的骨干模型中,当有变化事件时我会调用save。

myModel = Backbone.View.extend({

  initialize: function() {
    var self = this;
    self.model.on("change", function() { self.model.save(); });
  }

});

从Backbone文档中,我了解Backbone希望从服务器返回一个json对象。

所以我将模型发送回客户端。然后骨干更新模型,再次触发更改事件,这会导致它再次重新启动。

防止此行为的推荐方法是什么?

2 个答案:

答案 0 :(得分:1)

一般情况下,当你不想要动作的副作用时,只需传递一个silent: true选项。例如:

self.model.on("change", function() { self.model.save({silent: true}); });

我没有经过测试,以确保这解决了你的情况,但我怀疑它会。

答案 1 :(得分:0)

更清晰的写作方式是。

//inside you model
initialize: function () {
    this.on('change',function(){ this.save(null,{silent: true}); });
}

与文档backbonejs.org/#Model-save

一样

第一个arg是属性,第二个是选项

希望这有帮助