1

我是 Backbone 的新手,并尝试使用本地 JSON 文件进行测试来设置我的模型和嵌套在其中的集合。我目前有这样的事情:

var MyModel = Backbone.Model.extend({
    coll: null,
    initialize: function (attributes, options) {
        this.setData(attributes);
    },
    setData: function (data) {
        this.set("key1", data.key1);
        this.set("key2", data.key2);

        var coll = this.coll ? this.coll.reset(data.collData) : new MyCollection(data.collData);
        this.set("coll", coll);
    }
});
// ...
var myModel = new Model(jsonLoadedFromLocalFile);

但是,我的理解是,一旦我的服务器准备好返回数据,我将只使用Model.fetch()and Collection.fetch(),并且那些将调用Model.parse()and Collection.parse(),这parse()是解析数据的正确位置(与我的看似过于手动相反setData())。

加载虚拟数据以测试具有嵌套集合的模型的首选方法是什么?

4

1 回答 1

1

这似乎可以解决问题:

var MyModel = Backbone.Model.extend({
    defaults: {
        key1: "",
        key2: "",
        coll: null
    },
    initialize: function (attributes, options) {
        this.fetch({ url: attributes.url });
    },
    parse: function (response) {
        this.set("key1", response.key1);
        this.set("key2", response.key2);

        var coll = this.coll ? this.coll.reset(response.collData) : new MyCollection(response.collData);
        this.set("coll", coll);
    }
});
// ...
var myModel = new Model({ url: localJsonURL });

谢谢@muneebShabbir。

于 2013-07-02T04:31:01.653 回答