尝试滚动Ext.List时未捕获类型错误

时间:2012-11-13 09:28:40

标签: list extjs sencha-touch-2

我正在尝试使用Sencha Touch 2。我创建了一个简单的json商店,其中包含的项目比我的屏幕可以显示的更多以测试滚动,但每次我尝试滚动时都会出现以下错误:

Uncaught TypeError: Cannot call method 'getCount' of null

我试图找出错误但找不到解决方案。也许有人可以帮忙吗? 以下是我的示例文件:

host.json:

{
"hosts": [
    {
        "host_name": "host 1",
        "status": "pending"
    },
    {
        "host_name": "host 2",
        "status": "normal"
    },
    {
        "host_name": "host 3",
        "status": "critical"
    }

            ...

]
}

我的商店:

Ext.define('myapp.store.MyStore', {
extend: 'Ext.data.Store',

config: {
    storeId: 'mystore',
    model: 'myapp.model.MyModel',

    proxy: {
        type: 'ajax',
        url: 'host.json',
        reader: {
            type: 'json',
            rootProperty: 'hosts'
        }
    },
    autoLoad: true
}

});

列表视图:

  Ext.define('myapp.view.MyListView', {
extend: 'Ext.dataview.List',
alias: 'widget.mylistview',



config: {
    items: {
        xtype: 'list',
        store: 'mystore',
        itemTpl: '<div class="service_status_{status}">{host_name}</div>'
    }
}
});

调用List-View的视图:

Ext.define('myapp.view.Main', {
extend: 'Ext.Container',

config: {
    layout: {
        type: 'vbox',
        aligh: 'stretch'
    },

    items: [
        {
            xtype: 'mytoolbar',
            docked: 'top',
            height: 50
        },
        {
            xtype: 'mylistview',
            flex: 1
        }
    ]
}
});

1 个答案:

答案 0 :(得分:0)

使用'fit'布局可能会解决它。

您肯定应该改变这一点:

这已经定义了一个列表

Ext.define('myapp.view.MyListView', {
    extend: 'Ext.dataview.List',
    xtype: 'mylistview',

这是列表的配置:

    config: {

在这里,您可以在列表中添加一个实际使用的列表。 这不会顺利。这将是一个不能按预期工作的好理由。

    items: {
        xtype: 'list',
        store: 'mystore',
        itemTpl: '<div class="service_status_{status}">{host_name}</div>'
    }