1

我显然在这里错过了明显的东西,但这已经是漫长的一天了。

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

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();
    }
});

有什么不同?

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

4

1 回答 1

5

事件将change参数传递给它的处理程序,如果save用参数调用,它会将它们作为新属性应用到模型,并引发一个change事件(将属性传递给保存......这会导致改变......等)

于 2013-05-29T14:21:18.303 回答