更改保存的主干模型 - 无限循环?

Ste*_*mas 1 backbone.js

我明显错过了这里显而易见的事情,但已经过了漫长的一天.

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

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

虽然以下代码工作正常:

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

有什么不同?

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

fre*_*osh 5

change事件将参数传递给其处理程序,如果save使用参数调用,则将它们作为新属性应用于模型,并导致change事件(传递属性以保存...导致更改...等)