我在sencha中使用了NestedList和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和它的工作。但它不适用于url.Because因为商店没有填写。
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“:153,”name“:”MUZLU PASTA “,”“项目”:[]},{“pid”:154,“name”:“ÇİLEKLİPASTA”,“Items”:[]},{“pid”:155,“name”:“BEYAZÇİKOLATALIPASTA” , “项目”:[]}]}]}]
但不工作
答案 0 :(得分: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": []
}
]
}]
}
答案 1 :(得分: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
}
]
}
]
答案 2 :(得分: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'
}
答案 3 :(得分: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"。 我改变了#id; id" json数据中的属性及其工作! 好日子朋友......