0

我刚刚从 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) {

            }
        }
    }
});
4

1 回答 1

1

Ext.require异步加载文件,以及requires块。如果您希望 StoreManager 在 Ext.define 之前加载,您应该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.TeamStoreand添加到DRL.view.MainExt.application应该在 app.js 中的哪个中。

于 2013-06-12T23:48:53.610 回答