我正在尝试将嵌套列表加载到我的Sencha应用上。问题是我不熟悉它,我不确定我使用的json文件是否正确。
[
{
"text":[
{
"text":"1.1.1",
"leaf":true
}],
"text":[
{
"text":"1.1.1",
"leaf":true
}
]
}
]
这是我的商店代码
//Defining the store for the Nested List
Ext.define('InfoImage.store.nestedListStore', {
extend: 'Ext.data.TreeStore',
requires: 'InfoImage.model.nestedListModel',
id:'nestedListStore',
config:{
//Calling the required model for the Work Item List
model : 'InfoImage.model.nestedListModel',
//Defining the proxy for the Work Item List to pull the data for the List
proxy : {
type : 'ajax',
url : 'app/model/data/list.json',
reader: {
type: 'json',
root: 'items'
}
},
autoLoad: true
}
});
我的主要代码是
Ext.define("InfoImage.view.nestedList", {
extend:'Ext.NestedList',
xtype:'nestedList',
id:'nestedList',
config:{
fullscreen:'true',
title:'Nested List',
xtype:'nestedList',
//displayField : 'text',
html:'Nested List on its way!!!',
store:'nestedListStore'
//itemTpl:'{text}'
}
});
显示的输出是[object object]。我不知道缺少什么。非常感谢。
答案 0 :(得分:1)
首先,你的Json是一个有效的json。始终通过粘贴jsonlint.com
上的json来检查有效的json其次,我看到你已经注释了
displayField:'text'
属性。如果您未向displayField
提供nestedlist
,则无法知道数据存储中的哪些项目会显示在列表中。
可能这就是为什么你在列表中得到[object Object]
作为你的o / p。
取消注释以上行并检查。
答案 1 :(得分:0)
您的JSON似乎无法与Ext.NestedList
一起使用,因为text
是模型的一个字段,不应在JSON文件中声明为rootProperty。
首先,假设您有此模型定义:
Ext.define('ListItem', {
extend: 'Ext.data.Model',
config: {
fields: ['text']
}
});
根据您的数据,您的JSON文件应如下所示:
items: [
{
text: '1.1',
items: [
{ text: '1.1.1', leaf: true },
{ text: '1.1.2', leaf: true }
]
}
]
您还必须将此配置添加到商店defaultRootProperty: 'items'