Sencha Touch,StoreManager未定义

时间:2013-06-12 23:00:15

标签: sencha-touch-2

我刚刚在SenchaCmd中介绍了Sencha Touch 2.2.1中的一个新项目。由于这是我的第一个Sencha项目,我遇到了一些非常基本的问题。我正在尝试访问Ext.data.StoreManager以加载预定义的商店,但Ext.data.StoreManager未定义,因为它的接口就像加载器没有加载此文件一样。我试图通过添加Ext.require('Ext.data.StoreManager');来修复它,但没有运气。

该项目主要是SenchaCmd通过添加模型,商店和app/views/Main.js的一些更改来初始化的。

有什么想法吗?

以下是我的Main.js:

Ext.define('DRL.view.Main', {
    extend: 'Ext.dataview.List',
    xtype: 'main',
    requires: [
        'Ext.data.Store'
    ],
    config: {
        items: [{
            xtype: 'list',
            itemTpl: '{teamName}',
            store: Ext.data.StoreManager.lookup('teams')
        }],
        listeners: {
            itemtap: function(self, index, target, record, e, eOpts) {

            }
        }
    }
});

1 个答案:

答案 0 :(得分:1)

Ext.require异步加载文件,以及requires块。如果要在Ext.define之前加载StoreManager,则应在类定义之前使用Ext.syncRequire

然而,有更好,更清洁的方法来达到相同的最终结果。例如:

应用程序/商店/ TeamStore.js:

Ext.define('DRL.store.TeamStore', {
    extend: 'Ext.data.Store',
    model: 'DRL.model.Team' // change your model
    ...
});

应用程序/商店/ Main.js

Ext.define('DRL.view.Main', {
    ...
    store: 'DRL.store.TeamStore'
    ...
});

然后,添加 DRL.store.TeamStoreDRL.view.Main到你应该在app.js中的Ext.application