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

Nested List infinite loop with Sencha Touch 1

提问人:Diana 提问时间:3/4/2012 最后编辑:Narendra JadhavDiana 更新时间:4/14/2018 访问量:524

问:

我是 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-file 的结构(仅以一个节点为例):

{
    "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
    }]
}

谢谢!

sencha-touch 嵌套列表

评论


答:

0赞 erikvimz 5/19/2015 #1

我知道这篇文章有点旧,但如果它已经得到回答,它会为我节省 2 个“漫长”的人生,所以这里是:

我发现我错过了里面。根据您的 JSON,您需要将此属性设置为 。defaultRootPropertyTreeStoreitems

这是你应该是什么样子的:TreeStore

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