2014-05-11 47 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”属性和它的工作! 好日子的朋友...