我有一个名为 products 的 JSON 文件,需要拆分它。
这个文件的结构是这样的
我设想我需要一个集合(因为我不想在 json 文件中读取两次)和两个模型(productType 和 product)
productTypeList
0
id
name
productList
0
id
name
1
id
name
2
id
name
3
id
name
1
id
name
productList
2
id
name
productList
我正在考虑使用 getJson 命令来执行此操作。我确实尝试过在集合中使用主干 url 的想法,但这似乎更适合从静态 API 而不是静态 json 文件获取数据时,这些假设是否正确?
无论如何,如果我确实走上了拥有两个模型和一个集合的路线,当您在集合中定义一个方法时,这将如何工作?
我会假设有这样的模型
var ProductType=Backbone.Model.extend({
defaults:{
id:"",
name:'',
longName:''
}
});
return ProductType
var Product=Backbone.Model.extend({
defaults:{
id:"",
name:'',
ordering:'',
introSmall:'',
introNormal:'',
sellingPoints:'',
interestRate:'',
interestRateLabel:''
productTypeID:''
}
});
return Product;
然后我不确定该集合将如何工作...我添加了一些评论/问题?
var Products=Backbone.Collection.extend({
// Do i call both models here??
model:ProductType,
model:Product,
fetch:function(){
var self=this;
var tmpItem;
var tmpProduct
var jqxhr = $.getJSON("data/product.json")
.success(function(data, status, xhr) {
$.each(data.productTypeList, function(i,item){
tmpItem=new ProductType({
id:item.id,
name:item.name,
longName:item.longName,
ordering:item.ordering
});
$.each(data.productTypeList[i], function(a,itemProduct){
tmpProduct = new Product ({
id:itemProduct.id,
name:itemProduct.name,
ordering:itemProduct.ordering,
introSmall:itemProduct.introSmall,
productTypeID:i
});
self.add(tmpProduct);
});
self.add(tmpItem);
});
//dispatch customized event
self.trigger("fetchCompleted:Products");
})
.error(function() { alert("error"); })
.complete(function() {
console.log("fetch complete + " + this);
});
}
非常感谢任何帮助
谢谢