变化保存-无限循环的主干模型



我显然忽略了显而易见的一点,但这已经是漫长的一天了。

下面的代码在浏览器中创建一个无限循环:

M = Backbone.Model.extend({
    localStorage: new Backbone.LocalStorage("ModelName"),
    initialize: function() {
        this.on("change", this.save, this);
    }
});

而下面的代码可以正常工作:

M = Backbone.Model.extend({
    localStorage: new Backbone.LocalStorage("ModelName"),
    initialize: function() {
        this.on("change", this.modelChanged, this);
    },
    modelChanged: function() {
        this.save();
    }
});

有什么区别?

(是的,我使用本地存储模型而不是集合,但模型是一个单例,不存在于集合中。)

change事件将参数传递给它的处理程序,如果save带参数调用,它将它们作为新属性应用到模型中,并引起change事件(传递属性以保存…这导致了变化……等)

最新更新