2

我目前正在试验 Sencha Touch 2。我制作了一个简单的 json-store,其中包含的项目多于我的屏幕可以显示来测试滚动,但是每次我尝试滚动时都会出现以下错误:

Uncaught TypeError: Cannot call method 'getCount' of null

我试图找出问题所在,但还没有找到解决方案。也许任何人都可以提供帮助?这是我的示例文件:

主机.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
        }
    ]
}
});
4

1 回答 1

0

使用“适合”布局可能会解决它。

您肯定也应该更改以下内容:

这已经定义了一个列表

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>'
    }
于 2013-08-03T11:59:24.223 回答