2014-05-11 63 views
0

我在sencha中使用了帶有TreeStore的NestedList。 我的模型,存儲和列表在這裏:Ext TreeStore未加載

Ext.define('ListItem', { 
    extend: 'Ext.data.Model', 
    config: { 
     fields: [ 
      { name: 'pid' }, 
      { name: 'name' }, 
      { name: 'GroupVariations' }] 
    } 
}); 

var treeS=Ext.create('Ext.data.TreeStore', { 
    model: "ListItem", 
    config:{ 
     storeId:'treeS', 
     autoLoad: true, 
     defaultRootProperty: "Items", 
      proxy: { 
      type: "jsonP", 
      url: "myjosn/data.json", 
      reader: { 
       type: "json", 
       root: 'Items' 
      } 
     }, 
    root:{ 
     text:"Items", 
     expanded: true 
    } 
    } 
}); 

Ext.create('Ext.NestedList', { 
    fullscreen: true, 
    store: treeS, 
    title: 'Varyasyonlar', 
    displayField: 'name' 
}); 

我的JSON數據:

[ 
    { 
    "pid": 117, 
    "name": "beklet", 
    "Items": [] 
    }, 
    { 
    "pid": -1, 
    "name": "PASTALAR", 
    "Items": [ 
     { 
     "pid": 152, 
     "name": "ÇİKOLATALI PASTA", 
     "Items": [] 
     }, 
     { 
     "pid": 153, 
     "name": "MUZLU PASTA", 
     "Items": [] 
     }, 
     { 
     "pid": 154, 
     "name": "ÇİLEKLİ PASTA", 
     "Items": [] 
     }, 
     { 
     "pid": 155, 
     "name": "BEYAZ ÇİKOLATALI PASTA", 
     "Items": [] 
     } 
    ]`enter code here` 
    } 
] 

我這個JSON安裝本地數據和它的工作。但它不適用於網址。因爲商店沒有填充。

console.log(treeS) => Output => f,item,data,items: Array[0] 

爲什麼不工作?

I tried, my json this format: 

[{ 「文件」:[{ 「PID」 117, 「姓名」: 「beklet」, 「文件」:[]}]},{ 「文件」:[{ 「PID」: -1,「name」:「PASTALAR」,「Items」:[{「pid」:152,「name」:「ÇİKOLATALIPASTA」,「Items」:[]},{「pid」 :「MUZLU PASTA」,「Items」:[]},{「pid」:154,「name」:「ÇİLEKLİPASTA」,「Items」:[]},{「pid」:155,「name」 BEYAZÇİKOLATALIPASTA」, 「項目」:[]}]}]}]

但不起作用

回答

0

添加Items,它被定義爲root,在第一級別,如下所示:

編輯:而不是發送JSON數組,通過將第一個方括號更改爲大括號發送爲JSON對象。

{"Items":[ 
    { 
    "pid": 117, 
    "name": "beklet", 
    "Items": [] 
    }, 
    { 
    "pid": -1, 
    "name": "PASTALAR", 
    "Items": [ 
     { 
     "pid": 152, 
     "name": "ÇİKOLATALI PASTA", 
     "Items": [] 
     }, 
     { 
     "pid": 153, 
     "name": "MUZLU PASTA", 
     "Items": [] 
     }, 
     { 
     "pid": 154, 
     "name": "ÇİLEKLİ PASTA", 
     "Items": [] 
     }, 
     { 
     "pid": 155, 
     "name": "BEYAZ ÇİKOLATALI PASTA", 
     "Items": [] 
     } 
    ] 
    }] 
} 
+0

我試過了,但沒有工作? – cngiz

+0

@ user3607417,你可以嘗試更新的方式嗎? –

0

嘗試使用下面的json,上面的json不遵循樹結構。

[ 
{ 
    "pid": 117, 
    "name": "beklet", 
    "leaf": true 
}, 
{ 
    "pid": -1, 
    "name": "PASTALAR", 
    "leaf": false, 
    "Items": [ 
     { 
      "pid": 152, 
      "name": "ÇİKOLATALI PASTA", 
      "leaf": true 
     }, 
     { 
      "pid": 153, 
      "name": "MUZLU PASTA", 
      "leaf": true 
     }, 
     { 
      "pid": 154, 
      "name": "ÇİLEKLİ PASTA", 
      "leaf": true 
     }, 
     { 
      "pid": 155, 
      "name": "BEYAZ ÇİKOLATALI PASTA", 
      "leaf": true 
     } 
    ] 
} 
] 
0

你的JSON數據應該是這樣的

{"Children":[ 
    { 
    "pid": 117, 
    "name": "beklet", 
    "leaf":false, 
    "Children": [] 
    }, 
    { 
    "pid": -1, 
    "name": "PASTALAR", 
    "leaf":false, 
    "Children": [ 
     { 
     "pid": 152, 
     "name": "ÇİKOLATALI PASTA", 
     "leaf":false, 
     "Children": [] 
     }, 
     { 
     "pid": 153, 
     "name": "MUZLU PASTA", 
     "leaf":false, 
     "Children": [] 
     }, 
     { 
     "pid": 154, 
     "name": "ÇİLEKLİ PASTA", 
     "leaf":false, 
     "Children": [] 
     }, 
     { 
     "pid": 155, 
     "name": "BEYAZ ÇİKOLATALI PASTA", 
     "leaf":false, 
     "Children": [] 
     } 
    ] 
    }] 
} 

與讀者應該是這樣的

reader: { 
    type: "json", 
    root: 'Children' 
} 
0

感謝網友 我發現,然後回答。 我的json數據模型是:

Ext.define('Modifiers', { 
extend: 'Ext.data.Model', 
requires: [ 
    'Ext.data.Field' 
], 

config: { 
    fields: [ 
     { 
      name: 'id' 
     }, 
     { 
      name: 'name' 
     }, 
     { 
      name: 'price' 
     }, 
     { 
      name: 'selected' 
     }, 
     { 
      name: 'pid' 
     }, 
     { 
      name: 'must' 
     }, 
     { 
      name: 'mustGroup' 
     }, 
     { 
      name: 'isMultiSelect', 
      type: 'boolean' 
     }, 
     { 
      name: 'Items' 
     }, 
     { 
      name:'isProductGroup' 
     }, 
     { 
      name:'isMultiSelect' 
     } 
    ] 
} 

});

這裏的錯誤「id」。 我改變了json數據中的「id」屬性和它的工作! 好日子的朋友...