我是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()
和Collection.fetch()
,并且会调用Model.parse()
和{{1} } Collection.parse()
是解析数据的适当位置(而不是我看似过于手动的parse()
)。
加载虚拟数据以测试具有嵌套集合的模型的首选方法是什么?
答案 0 :(得分: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。