products という単一の JSON ファイルがあり、これを分割する必要があります。
このファイルの構造はこのようなものです
1 つのコレクション (json ファイルを 2 回読みたくないため) と 2 つのモデル (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 を使用するというアイデアを試してみましたが、これは、データが静的 json ファイルではなく安静な API から取得されている場合により適しているようです。これらの仮定は正しいでしょうか?
とにかく、2 つのモデルと 1 つのコレクションを持つルートをたどると、コレクションでメソッドを定義するときにどのように機能しますか?
私はこのようなモデルを持っていると思います
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);
});
}
どんな助けでも本当に感謝しています
ありがとう