如何在sencha touch中获取嵌套列表

How can i get Nested List in sencha touch?

本文关键字:获取 嵌套 列表 touch sencha      更新时间:2023-09-26

我有以下主文件:

app.js:

Ext.Loader.setConfig({
});
Ext.application({
    views: [
        'Login',
        'Inner',
        'Group',
        'Innerdata',
        'Grptoolbar'
    ],
    stores:[
        'MyStore'
    ],
    models:[
        'MyModel'
    ],
    name: 'chat',
    launch: function() {
        Ext.create('chat.view.Login', {fullscreen: true});
    }
});

Group.js:是列表的视图文件。

Ext.define('chat.view.Group', {
    extend: 'Ext.Group',
    alias: "widget.Group",
    xtype:'Group',
    requires:['Ext.dataview.List','Ext.data.Store'],
    config:{
    title:'My List',
    layout:'fit',
     items: [
        {
            xtype:'list',
            store:'MyStore',
            itemTpl:'<b>{name}<b>'
        },
     ]
  },
});

MyModel.js:

Ext.define('chat.model.MyModel',{
    extend:'Ext.data.Model',
    config:{
        fields: [
        {name: 'text', type: 'string'},
        {name: 'card'}
    ]
    }
});

MyStore.js

Ext.define('chat.store.MyStore',{
    extend:'Ext.data.TreeStore',
    config:{
        model:'chat.model.MyModel',
        root: {
       items: [{
            text: 'About',
            card: {xtype: 'Grptoolbar'},
            leaf: true
        }
        ],
        },
        autoLoad:true,
        proxy: {
        type: 'ajax',
        reader: {
            type: 'tree',
            root: 'items'
        }
    }
    }
});

我正在尝试创建嵌套列表。所以我创建了存储、模型和视图文件
目前我面临这个错误:

错误:[Ext.createByAlias]无法创建无法识别的别名的实例:reader.tree

如果我从MyStore.js中删除以下行,那么错误就消失了,应用程序正在运行,但我没有列表。

proxy: {
        type: 'ajax',
        reader: {
            type: 'tree',
            root: 'items'
        }
    }   

那么我该怎么解决呢?所以我得到了嵌套列表。

没有"树读取器",因此不能使用配置type: 'tree',允许的选项有:json、xml、data、array。

此外,当您使用嵌套列表时,不需要为代理定义"树读取器"。我认为这就足够了:

Ext.define('chat.store.MyStore',{
    extend:'Ext.data.TreeStore',
    config:{
        model:'chat.model.MyModel',
        root: {
          items: [{
            text: 'About',
            card: {xtype: 'Grptoolbar'},
            leaf: true
          }],
        },
        autoLoad:true,
        defaultRootProperty: 'items'
    }
    }
});