Backbone Model save on change loops between client and server
在我的主干模型中,当发生更改事件时,我会调用 save。
1 2 3 4 5 6 7 8 | myModel = Backbone.View.extend({ initialize: function() { var self = this; self.model.on("change", function() { self.model.save(); }); } }); |
从 Backbone 文档中,我了解到 Backbone 期望从服务器返回一个 json 对象。
所以我将模型发回给客户。然后主干更新模型,这会再次触发更改事件,这会导致它再次重新保存。
防止这种行为的推荐方法是什么?
通常在 Backbone 中,当您不希望操作产生副作用时,您只需传递一个
1 | self.model.on("change", function() { self.model.save({silent: true}); }); |
我没有进行测试以确保这能解决你的问题,但我怀疑它会。
更简洁的写法是:
1 2 3 4 | //inside you model initialize: function () { this.on('change',function(){ this.save(null,{silent: true}); }); } |
如文档中的backbonejs.org/#Model-save.
第一个参数是属性,第二个是选项。