1

私はこのjsonを持っています

    {
   "root":{
      "category":[
         {
            "categoryId":"1",
            "children":{
               "child":[
                  {
                     "subcategoryId":"1",
                     "children":{
                        "child":[
                           {
                              "productId":"1"
                           },
                           {
                              "productId":"2"
                           }
                        ]
                     }
                  },
                  {
                     "subcategoryId":"2",
                     "children":{
                        "child":[
                           {
                              "productId":"3"
                           },
                           {
                              "productId":"4"
                           }
                        ]
                     }
                  },
                  {
                     "subcategoryId":"3",
                     "children":{
                        "child":[
                           {
                              "productId":"5"
                           },
                           {
                              "productId":"6"
                           }
                        ]
                     }
                  }
               ]
            }
         },
         {
            "categoryId":"2",
            "children":{
               "child":[
                  {
                     "subcategoryId":"4",
                     "children":{
                        "child":[
                           {
                              "productId":"7"
                           },
                           {
                              "productId":"8"
                           }
                        ]
                     }
                  },
                  {
                     "subcategoryId":"5",
                     "children":{
                        "child":[
                           {
                              "productId":"9"
                           },
                           {
                              "productId":"10"
                           },
                           {
                              "productId":"11"
                           }
                        ]
                     }
                  }
               ]
            }
         }
      ]
   }
}

このモデル

Ext.define('ParentMode', {
        extend: 'Ext.data.Model',
            config: {
            fields: [
            {name: 'categoryId', type: 'string'},
            {name: 'children'} // VERY IMPORTANT TO ADD THIS FIELD
            ],
            proxy: {
                type: 'ajax',
                url : 'store.php',
                reader: {
                type: 'json',
                    rootProperty: 'root.category' // this works fine
                }
            }
        }
})

3 つの異なるビューがあります。最初のビュー「メイン」には、「categoryId」を表示するデータビューがあります。

   var myStore = Ext.create('Ext.data.Store', { 
            model: 'ParentMode',
            autoLoad:true
    }); 



var dataview = Ext.create('Ext.DataView', {
    scrollable: false,
    store: myStore,
    listeners: {
        itemtap: function(list, index, target, record){
            this.up('main').push({
                xtype: 'categories',
                title: record.get('categoryId'),
                extraRecord:record
        })
        }
    }
});

この「メイン」ビューからわかるように、1 つのアイテムがタップされ、「categoryId」を取得する新しいタイトルがそれに割り当てられると、新しいビュー「カテゴリ」がプッシュされ、すべてが正常に機能するようになりました。「カテゴリ」ビューで、すべての「subcategoryId」を次のように表示します。

        var dataview = Ext.create('Ext.dataview.DataView', {
            store: myStore,
            itemTpl: '<tpl for="children.child"><div class="category-thumb">SubcategoryID: {subcategoryId}</div></tpl>',

...

問題は、itemTap で新しいビュー「products」をプッシュし、タイトルを「subcategoryId」に設定するにはどうすればよいかということです。

    listeners: {
        itemtap: function(list, index, target, record){
            this.up('main').push({
                   xtype: 'products',
           title: record.get('subcategoryId'),
            })
         }
    }

問題はそれです

title: record.get('subcategoryId'),

うまくいかないのは、jsonにネストされているためだと思います。サイクルを実行する必要があると思いますが、方法がわかりません。

また、「products」に同じ問題があり、「productsId」を取得するにはどうすればよいですか

4

0 に答える 0