我有以下JSON结构:
{
"Results": {
"Package": [{
"@ID": "a1a2a3a4",
"Name": "Package Name",
"Category_ID": {
"@Product_Line_ID": "11",
"#text": "11"
},
"Effective_Start_Date": "2013-08-09",
"Available_Start_Date": "2013-08-09",
"Product_Name": "Web National Promotion",
"Product_To_Product": [{
"@ID": "b1b2b3b4",
"Association_Start_Date": "2013-08-09",
"Max_Occurs": "1",
"Min_Occurs": "1",
"Product": [{
"@ID": "a5a6a7a8",
"Name": "Product Name 1",
"Effective_Start_Date": "2013-08-05",
"Available_Start_Date": "2013-08-05"
},{
"@ID": "a5a6a7a8",
"Name": "Product Name 2",
"Effective_Start_Date": "2013-08-05",
"Available_Start_Date": "2013-08-05"
etc............
我不会创建模型,关系,集合等的复杂结构。(此JSON具有嵌套元素的复杂结构
包 - Product_to_Product - 产品 - 产品等 - Charge_to_Carge - 收费 - 收费 等...
我想知道是否有办法创建Backbonde的单个实例,例如“Package”节点,以及从该节点访问其他子节点和信息。
请告诉我你可能的解决方案来管理这个复杂的结构,以及从模型“包”到内部孩子的可能性(代码)。
谢谢
CHARLS
答案 0 :(得分:0)
使用任何嵌套结构创建Backbone模型非常简单:
var Package = Backbone.Model.extend();
var package = new Package({
"@ID": "a1a2a3a4",
"Name": "Package Name",
"Category_ID": {
"@Product_Line_ID": "11",
"#text": "11"
},
"Effective_Start_Date": "2013-08-09",
"Available_Start_Date": "2013-08-09",
"Product_Name": "Web National Promotion",
"Product_To_Product": [] // might have nested objects
});
package.get("Name"); // Package Name
package.get("Category_ID").get("#text"); // TypeError: no get method found
但是,您可以从中获得的唯一优势是在直接属性(@ID
,Name
,Category_ID
等上使用Backbone.Model API和事件,而不是{{模型的1}},@Product_Line_ID
)。因此,访问模型的内部对象与访问javascript对象的方式类似。
如果您的模型确实有一个有意义的结构,并且已经定义了一些关系(比如Package和Products之间的一对多关系),那么我建议您查看一些Backbone扩展,它们真的会对您有所帮助。其中一个扩展名为Backbone Associations。