sencha extjs在storemanager完成加载后运行?

时间:2018-10-04 00:39:03

标签: javascript extjs store extjs6-modern

在开发应用程序时,我会在应用程序启动时运行一些代码:

Ext.application({
    extend: 'TestApp.Application',

    name: 'TestApp',

    requires: [
        'TestApp.*'
    ],

    // The name of the initial view to create.
    launch: async function () {
        const store_org = Ext.getStore('Organizations');
        const store_event = Ext.getStore('Events');
        //more stuff here
    }
});

两个商店的定义都明确:

Ext.define('TestApp.store.Organization', {
    extend: 'Ext.data.Store',
    storeId: 'Organizations',
    alias: 'store.organizations',

    model: 'TestApp.model.Organization',
    autoLoad: true,

    pageSize: 0,


    proxy: {
        type: 'ajax',
        url: TestApp.util.Config.getHost() + '/organization/get-organizations',
        withCredentials: true,
        reader: {
            type: 'json',
            rootProperty: '',
        },
    },
});

不过,我确实注意到,在启动Ext.getStore()函数时,对于任何商店始终会返回undefined。有什么办法可以将其“延迟”到storemanager已完全加载并且这些存储不再返回undefined的程度? (商店本身不会充满数据...)。

1 个答案:

答案 0 :(得分:1)

只需将其添加到Ext.application类或TestApp.application中(更好)

stores:['TestApp.store.Organization'],

这是您所有商店的数组,因此,如果您需要添加更多存储,只需使用逗号并输入新文件的类路径名

这是一个有效的示例Fiddle