如何使用收集骨干获取此JSON结果呢? [英] how to use Backbone Collection to fetch this JSON result?
问题描述
我有以下的JSON回复
I have the following JSON reply
{
"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
The url to retrieve the above data is /products/index.json
要获取的URL产品2页数据/products/index.json/page:2
The url to retrieve page 2 of products data is /products/index.json/page:2
我写了下面的集
<script type="text/javascript">
(function ($) {
window.AppView = Backbone.View.extend({
el: $("body")
});
var appview = new AppView;
var Products = Backbone.Collection.extend({
model: Product,
url: '/products/index.json'
});
Products.fetch();
})(jQuery);
</script>
我想我已经写了产品
收藏错误。
请指教。
更新
这是我的新code http://jsfiddle.net/Cw6PT/
This is my new code http://jsfiddle.net/Cw6PT/
这是错误消息我现在有:未捕获类型错误:目标函数(){返回c.apply(这一点,参数)}无法获取
This is the error message I now have: Uncaught TypeError: Object function (){return c.apply(this,arguments)} has no method 'fetch'
推荐答案
您产品
是收藏
类,不是收藏
对象。更改code到
Your Products
is a Collection
class, not a Collection
object. Changing your code to
new Products().fetch()
或
var Products = new (Backbone.Collection.extend(...))
应该工作。另外,如果你想定制如何解析JSON回复,你可以覆盖 collection.parse 。
这篇关于如何使用收集骨干获取此JSON结果呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!