如何将一个主干模型与另一个关联起来
How do I associate one Backbone Model with another?
我有以下JSON回复
{
"results":[
{
"Product":{
"id":"1",
"short_name":"Infra - 2200 CAS Sma SIMO onl [DAS.1.1]",
"serial_number":"DAS.1.1",
"created_by":"Wesley Jace Tan",
"modified_by":"Wesley Jace Tan",
"created":"2013-02-11 07:58:20",
"modified":"2013-02-11 07:58:20",
"full_name_type":"2200",
"full_name_cas_stk":"CAS",
"full_name_size":"Small",
"full_name_simo_mimo":"SIMO only",
"full_name_product_code":"(2961-737)",
"uom":"lot",
"material":"Infra"
},
"Price":[
{
"id":"1",
"product_id":"1",
"source_file":"LTE Test File.xls",
"for_financial_year":"FY12_13",
"created_by":"Wesley Jace Tan",
"modified_by":"Wesley Jace Tan",
"created":"2013-02-11 07:58:20",
"modified":"2013-02-11 07:58:20",
"gross_unit":"50.00",
"gross_total_value":"0.00",
"gross_total_formula":"=K12*J12",
"incentive_value":"5",
"incentive_formula":"5",
"net_price_unit":"0.00",
"net_price_total_value":"0.00",
"net_price_total_formula":"=N12*J12"
}
]
},
{
"Product":{
"id":"2",
"short_name":"Infra - 2200 CAS Sma SIMO to [DAS.1.2]",
"serial_number":"DAS.1.2",
"created_by":"Wesley Jace Tan",
"modified_by":"Wesley Jace Tan",
"created":"2013-02-11 07:58:20",
"modified":"2013-02-11 07:58:20",
"full_name_type":"2200",
"full_name_cas_stk":"CAS",
"full_name_size":"Small",
"full_name_simo_mimo":"SIMO to MIMO Retrofit",
"full_name_product_code":"(2961-737)",
"uom":"lot",
"material":"Infra"
},
"Price":[
{
"id":"2",
"product_id":"2",
"source_file":"LTE Test File.xls",
"for_financial_year":"FY12_13",
"created_by":"Wesley Jace Tan",
"modified_by":"Wesley Jace Tan",
"created":"2013-02-11 07:58:20",
"modified":"2013-02-11 07:58:20",
"gross_unit":"11.00",
"gross_total_value":"0.00",
"gross_total_formula":"=K13*J13",
"incentive_value":"24",
"incentive_formula":"24",
"net_price_unit":"0.00",
"net_price_total_value":"0.00",
"net_price_total_formula":"=N13*J13"
}
]
},
{
"Product":{
"id":"3",
"short_name":"Infra - 2200 CAS Sma Full MIM [DAS.1.3]",
"serial_number":"DAS.1.3",
"created_by":"Wesley Jace Tan",
"modified_by":"Wesley Jace Tan",
"created":"2013-02-11 07:58:20",
"modified":"2013-02-11 07:58:20",
"full_name_type":"2200",
"full_name_cas_stk":"CAS",
"full_name_size":"Small",
"full_name_simo_mimo":"Full MIMO",
"full_name_product_code":"(2961-737)",
"uom":"lot",
"material":"Infra"
},
"Price":[
{
"id":"3",
"product_id":"3",
"source_file":"LTE Test File.xls",
"for_financial_year":"FY12_13",
"created_by":"Wesley Jace Tan",
"modified_by":"Wesley Jace Tan",
"created":"2013-02-11 07:58:20",
"modified":"2013-02-11 07:58:20",
"gross_unit":"12.00",
"gross_total_value":"0.00",
"gross_total_formula":"=K14*J14",
"incentive_value":"5",
"incentive_formula":"5",
"net_price_unit":"0.00",
"net_price_total_value":"0.00",
"net_price_total_formula":"=N14*J14"
}
]
}
]
}
检索上述数据的url是/products/index.json
检索产品数据第2页的url是/products/index.json/page:2
我的目标是建立一个具有骨干价格模型的骨干产品模型。
因此,上述结果数组中的每个条目都将生成一个产品和价格骨干模型实例。
骨干模型之间的关联是否理想?
我该如何做到这一点?
更新
尝试推荐的解决方案后,我收到以下错误消息。未捕获的类型错误:对象函数(){return c.apply(this,arguments)}没有方法"fetch"
您需要覆盖collection.parse。示例代码:
var Products = Backbone.Collection.extend({
model: Product,
url: '/products/index.json',
parse: function(response) {
return _.map(response.results, // map each result to a product
function(result){
var product = result.Product;
product.price = new Price(result.Price); // create a price model
return product; // Backbone will convert the product to model
});
}
});
相关文章:
- 如何从另一个控制器更新控制器的ng重复模型
- LoopBack访问另一个模型
- AngularJS从另一个数据模型访问数据模型
- ng模型的输入基于另一个变量
- 在 Backbone 中将数据从一个模型传递到另一个模型
- 默认情况下,一个模型属性等于 sail.js 模型中的另一个模型属性
- 在引导模型弹出窗口中从一个页面到另一个页面进行导航
- 如何为模型中的类似记录设置另一个名称,以便与ext js中的表单字段进一步绑定
- 我无法访问javascript oop模型中的另一个方法
- 从 KnockoutJS 视图模型中获取值,然后在另一个视图模型上调用它
- 主干:如何在视图中将一个模型替换为另一个模型
- 访问 Ember.js 中的另一个模型数据
- 从另一个具有属于关系的模型访问模型属性 Ember.js
- 将主干模型属性值设置为另一个模型
- AngularJS请求模型在另一个模型创建[NodeJS]之前
- AngularJS:如果ng模型被另一个模型填充,如何让它受到影响
- 主干模型属性在更新另一个属性时更新
- 将 Ajax.Actionlink OnSuccess 上的模型 id 传递给另一个 Javascript 函数
- 更新一个控制器中的模型,该模型被监视并位于不同的包中,并由另一个控制器使用
- EmberJS:基于另一个属性重新加载控制器模型的最佳方法