Вложенный список бесконечный цикл с Сенча Touch 1 - PullRequest
3 голосов
/ 04 марта 2012

Я новичок в 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 Ответ

0 голосов
/ 19 мая 2015

Я знаю, что этот пост немного устарел, но если бы на него уже отвечали, он бы спас мне 2 "долгих" часа моей жизни, так что вот оно:

Я понял, что былотсутствует defaultRootProperty внутри TreeStore.Согласно вашему JSON вам нужно установить это свойство на items.

. Вот как должен выглядеть ваш TreeStore:

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