0

我正在尝试将嵌套列表加载到我的 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]。我不知道缺少什么。任何帮助表示赞赏。

4

2 回答 2

1

首先,您的 Json 是一个有效的 json。始终通过在jsonlint.com上粘贴 json 来检查有效的 json

其次,我看到你已经注释掉了

displayField:'text' 

财产。如果您不向 提供displayFieldnestedlist它就不会知道数据存储中的哪些项目要显示在列表中。

可能这就是为什么您[object Object]在列表中获得 o/p 的原因。

取消注释以上行并检查。

于 2012-04-26T13:03:20.890 回答
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'

于 2012-04-27T04:08:39.093 回答