Sencha Touch 1 的嵌套列表无限循环

Posted

技术标签:

【中文标题】Sencha Touch 1 的嵌套列表无限循环【英文标题】:Nested List infinite loop with Sencha Touch 1 【发布时间】:2012-03-04 15:21:21 【问题描述】:

我是 Sencha Touch 和网络编程的新手。我正在尝试显示一个嵌套列表,并且一遍又一遍地循环获取第一级项目。

我查看了文档和厨房水槽示例,但无法正确理解。我将非常感谢您的提示!

这是我的代码:

 Ext.regModel('Site', 
     fields: [
         name: "sitename",
         type: "string"
     , 
         name: "last_connection",
         type: 'auto'
     ]
 );


 Ext.setup(
     icon: 'icon.png',
     tabletStartupScreen: 'tablet_startup.png',
     phoneStartupScreen: 'phone_startup.png',
     glossOnIcon: false,
     onReady: function() 

         var store = new Ext.data.TreeStore(
             model: 'Site',
             proxy: 
                 type: 'ajax',
                 url: 'network.json',
                 reader: 
                     type: 'json',
                     root: 'items'
                 
             
         );


         var nestedList = new Ext.NestedList(
             fullscreen: true,
             title: 'Netzwerk',
             displayField: 'sitename',
             plugins: [new Ext.LeafSelectedPlugin()],
             // add a / for folder nodes in title/back button
             getTitleTextTpl: function() 
                 return '' + this.displayField + '<tpl if="leaf !== true">/</tpl>';
             ,
             // add a / for folder nodes in the list
             getItemTextTpl: function() 
                 return '' + this.displayField + '<tpl if="leaf !== true">/</tpl>';
             ,

             store: store
         );
     
 );

以及json文件的结构(仅以一个节点为例):


    "items": [
        "id": "11",
        "sitename": "Site A",
        "items": [
            "id": "11",
            "sitename": "Endpoint 1",
            "last_connection": "2012-03-02T10:03:22+0100",
            "ping_time": 63,
            "leaf": true
        , 
            "id": "12",
            "sitename": "Endpoint 2",
            "last_connection": "2012-03-02T10:03:22+0100",
            "ping_time": 57,
            "leaf": true
        ],
        "last_connection": "2012-03-02T10:03:22+0100",
        "ping_time": 57
    ]

谢谢!

【问题讨论】:

【参考方案1】:

我知道这篇文章有点老了,但如果它已经得到了回答,它会为我节省 2 个“长”小时的生命,所以它是这样的:

我发现我在TreeStore 中缺少defaultRootProperty。根据您的 JSON,您需要将此属性设置为 items

这是您的TreeStore 的外观:

var store = new Ext.data.TreeStore(
    model: 'Site',
    defaultRootProperty: 'items',
    proxy: 
       type: 'ajax',
       url: 'network.json',
        reader: 
            type: 'json',
            root: 'items'
        
    
);

【讨论】:

以上是关于Sencha Touch 1 的嵌套列表无限循环的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch:嵌套列表滚动到顶部,我该如何禁用它?

Sencha Touch 2:给嵌套列表叶节点一个不同的 itemTpl

Sencha Touch 2:在选项卡面板中创建嵌套列表

sencha touch 2.2.1 检查控制器中的商店是不是为空?

Sencha Touch Nestedlist JSON 格式示例

Sencha Touch filter dataview 存储和刷新列表