0

以下の Response で childId 値を解析しようとしています。値を解析できません。私は協会の初心者であり、多くの概念を持っています。app.js でアラートの childId 値を指定していますが、表示されません。私のマッピングが正しいかどうか誰か教えてもらえますか? 問題の内容と修正方法を誰か教えてもらえますか?

Sample.Json

{
        "parents":{
         "parent1":{
           "parent":[
             {
                 "children":{
                     "child":[
                      {
                          "childId":1,
                          "childdetails": {
                  "childrendetails": [
                    {
                      "childName": "Test",
                      "childAge": "19"
                    },
                    {
                      "childName": "Test1",
                      "childAge": "20"
                    }
                  ]
                }

                  },
                      {
                          "childId":2,
                           "childdetails": {
                  "childrendetails": [
                    {
                      "childName": "Test2",
                      "childAge": "25"
                    },
                    {
                      "childName": "Test3",
                      "childAge": "24"
                    }
                  ]
                } 


                      }
                   ]
                }
             },
             {
            "children":{
                   "child":[
                      {
                         "childId":3,
                         "childdetails": {
                  "childrendetails": [
                    {
                      "childName": "Test4",
                      "childAge": "25"
                    },
                    {
                      "childName": "test5",
                      "childAge": "21"
                    }
                  ]
                }


                      },
                      {
                         "childId":4,
                          "childdetails": {
                  "childrendetails": [
                    {
                      "childName": "Test6",
                      "childAge": "26"
                    },
                    {
                      "childName": "test7",
                      "childAge": "27"
                    }
                  ]
                }
                     }




                   ]
                },


               "parentName":"firstName",
               "parentAge":"28"

             },


             {
                 "children":{
                     "child":[
                      {
                          "childId":5,
                          "childdetails": {
                  "childrendetails": [
                    {
                      "childName": "Test8",
                      "childAge": "24"
                    },
                    {
                      "childName": "Test9",
                      "childAges": "27"
                    }
                  ]
                }


                      },
                      {
                          "childId":6,
                           "childdetails": {
                  "childrendetails": [
                    {
                      "childName": "Test10",
                      "childAge": "25"
                    },
                    {
                      "childName": "Test11",
                      "childAge": "24"
                    }
                  ]
                } 


                      }
                   ]
                }
             },
             {
                "children":{
                   "child":[
                      {
                         "childId":7,
                         "childdetails": {
                  "childrendetails": [
                    {
                      "childName": "Test12",
                      "childAge": "25"
                    },
                    {
                      "childName": "Test13",
                      "childAge": "21"
                    }
                  ]
                }


                      },
                      {
                         "childId":8,
                          "childdetails": {
                  "childrendetails": [
                    {
                      "childName": "Test14",
                      "childAge": "26"
                    },
                    {
                      "childName": "Test15",
                      "childAge": "27"
                    }
                  ]
                }
                     }


                ]
                },


               "parentName":"secondname",
               "parentAge":"35"

             }

            ]

       }


    }

    }

ParentModel.js

Ext.define("extcityview.model.ParentModel", {
    extend: 'Ext.data.Model',
     fields: [
        'parentName', 'parentAge'
    ],
    hasMany: {model: 'extcityview.model.ChildrenModel', name: 'children'},

});




Ext.define("extcityview.model.ChildrenModel", {
    extend: 'Ext.data.Model',
    hasMany  : {model:'extcityview.model.ChildModel', name:'child', associationKey: 'childItems'},
    belongsTo: 'extcityview.model.ParentModel'
});


Ext.define("extcityview.model.ChildModel", {
    extend: 'Ext.data.Model',
    fields: [
         'childId'
    ],
     belongsTo: 'extcityview.model.ChildrenModel'
});

ChildStore.js

Ext.define('extcityview.store.ChildStore', {
    extend : 'Ext.data.Store',
    storeId : 'samplestore',
    model : 'extcityview.model.ParentModel',
    autoLoad : 'true',
    proxy : {
        type : 'ajax',
        url : 'sample.json',
        reader : {
            type  : 'json',
            root  :'parents.parent1.parent'     
        }
    }

}); 

app.js

var store = Ext.create('extcityview.store.ChildStore', {

                               model: "extcityview.model.ParentModel",

});

store.load({
            callback: function() 
            {
              console.log("i am in callback");
                var parent = store.first();
                alert("parent"+parent);
                console.log("parent"+parent);
                parent.children().each(function(children){
                 children.child().each(function(child)  {
                 alert("sub region anme"+child.get('childId'));
                 console.log("sub region name"+child.get('childId'));

                 });




                }); 
            }
        });

ありがとう

4

1 に答える 1

1

最初に気付いたのは、JSON が入れ子になっているように見えることです。私はそれを最初に変えます...あなたが持っている構造は、必要以上に人生を難しくするでしょう.

JSON

{
    "parents": [
        {
            "children": [
                {
                    "childId": 7,
                    "childdetails": [
                        {
                            "childName": "Test12",
                            "childAge": "25"
                        },
                        {
                            "childName": "Test13",
                            "childAge": "21"
                        }
                    ]
                },
                {
                    "childId": 8,
                    "childdetails": [
                        {
                            "childName": "Test14",
                            "childAge": "26"
                        },
                        {
                            "childName": "Test15",
                            "childAge": "27"
                        }
                    ]
                }
            ],
            "parentName": "secondname",
            "parentAge": "35"
        }
    ]
}    

あなたはあなたを取り除き、をChildrenModelChildModel所属させることができるはずParentModelです。また、モデルを参照する「childdetails」に をhasMany追加することもできます。ChildModelChildDetails

ExtJs hasMany Relationship rulesで記憶をリフレッシュすることは、常に役に立ちます。

于 2013-03-07T15:29:02.753 に答える