Sencha Touch 2 - 我的Ext.List没有出现

时间:2012-04-01 17:49:01

标签: store sencha-touch-2

这是我的应用代码:

Ext.application({
    name: 'ProjectName',
    appFolder: APP_URL + "app",

    // phoneStartupScreen: 'LOGO.png',

    controllers: ['Site_inside'],
    views: ['Inside_spotlist'],
    models: ['Spot'],
    stores: ['Spots'],

    launch: function() {
        //bootstrap
        console.log("inner site bootstrap");

        //var spotlist = Ext.create("ProjectName.view.Inside_spotlist");

        Ext.Viewport.add({
            xclass: 'ProjectName.view.Inside_spotlist'
        });

        return true;   
    }
});

查看'Inside_spotlist'代码:

Ext.define('ProjectName.view.Inside_spotlist', {
    extend: 'Ext.List',
    alias: 'spotlist',
    xtype: 'spotlist',

    requires: [
        'ProjectName.store.Spots'
    ],

    config: {
        store: 'Spots',
        itemTpl: '{first_name} {last_name}'
    },

    initialize: function() {
        console.log("spolist loaded");
    }
});

'Spot'模型的代码:

Ext.define("ProjectName.model.Spot", {
    extend: 'Ext.data.Model',

    config: {
        fields: [
            {
                name: 'firstName',
                type: 'string'
            },
            {
                name: 'lastName',
                type:'string'
            }
        ]
    }
});

最后,Spots商店:

Ext.define("ProjectName.store.Spots", {
    extend: 'Ext.data.Store',

    config: {
        listeners: {
            load: function() {
                console.log("loaded store");
            }
        },

        autoLoad: true,
        autoSync: true,

        model: 'ProjectName.model.Spot',
        data:[
            {
                firstName: 'test',
                lastName:  'test2'
            }
        ]
    }
});

它加载正常(出现控制台消息,没有错误或警告消息),但没有出现包含我的测试数据的列表。如果我尝试上下“抓取”网站,右侧的iOS风格滚动条会显示,但列表中没有数据。

此代码有什么问题?

2 个答案:

答案 0 :(得分:0)

我建议您遵循此处描述的惯例:Loading data into List using store sencha touch 2

虽然答案中的评论似乎表明提问的人是按照你的方式做的,但我不确定这是怎么回事。尝试按照答案中描述的方式进行操作,即使用Ext.create创建商店实例,然后使用Ext.data.StoreManager.lookup在任何需要的地方查找和使用该实例。这里的问题是列表中的store属性没有商店实例。

答案 1 :(得分:0)

你可以试试这个:

Ext.Viewport.add(
    Ext.create('ProjectName.view.Inside_spotlist')
);

而不是:

Ext.Viewport.add({
    xclass: 'ProjectName.view.Inside_spotlist'
});

此外....

你可以试试这个:

config: {
    store: 'ProjectName.store.Spots',
    itemTpl: '{first_name} {last_name}'
}

而不是:

config: {
    store: 'Spots',
    itemTpl: '{first_name} {last_name}'
}