ExtJS5 TypeError:Ext.ux.ProgressBarPager不是构造函数

时间:2014-08-28 08:33:11

标签: javascript extjs mvvm extjs5

我正在尝试在MVVM项目中创建带有进度条的网格。它曾经工作,但当我用

刷新我的应用程序
sencha app refresh

我开始得到“TypeError:Ext.ux.ProgressBarPager不是构造函数”错误。

这是我在其中使用网格的面板:

Ext.define("GeoPortal.view.south.South",{
    "extend": "GeoPortal.geox.components.Panel",
    "controller": "south",
    "viewModel": {
        "type": "south"
    },
    "region": 'south',
    "collapsible": true,
    "collapsed": true,
    "title": "SouthPanel",
    "xtype": "southPanel",
    "items": [{
        xtype: 'gxPagedGrid',
        params: {
            store: 'GeoPortal.store.Companies',
            pageSize: 5,
            columns: [{
                text: 'Name',
                sortable: true,
                dataIndex: 'name',
                flex: 1
            }, {
                text: 'Price',
                sortable: true,
                formatter: 'usMoney',
                dataIndex: 'price',
                width: 75
            }, {
                text: 'Change',
                sortable: true,
                dataIndex: 'change',
                width: 80
            }, {
                text: '% Change',
                sortable: true,
                dataIndex: 'pctChange',
                width: 100
            }]
        }
    }]
});

这是我的pagedGrid类:

Ext.define('GeoPortal.geox.components.PagedGrid', {
    extend: 'GeoPortal.geox.components.Grid',
    xtype: 'gxPagedGrid',
    using: [
        'Ext.toolbar.Paging',
        'Ext.ux.ProgressBarPager'
    ],

    initComponent: function () {

        var store = new Ext.create(this.params.store, {
            pageSize: this.params.pageSize,
            proxy: {
                enablePaging: true
            }
        });

        Ext.apply(this, {
            using: store,
            store: store,
            columns: this.params.columns,
            bbar: {
                xtype: 'pagingtoolbar',
                pageSize: this.params.pageSize,
                store: store,
                displayInfo: true
                // FIX: this
                //plugins: new Ext.ux.ProgressBarPager()
            }
        });
        this.callParent();
    },

    afterRender: function () {
        this.callParent(arguments);
        this.getStore().load();
    }
});

提前谢谢。

1 个答案:

答案 0 :(得分:0)

可能会出现问题,因为您在类定义中使用using而不是requires。这就是当您尝试创建实例时未加载Ext.ux.ProgressBarPager的原因。

Ext.create('Ext.ux.ProgressBarPager')正在运行(如commen中所述),因为它能够按需加载类,这就是为什么最好使用Ext.create而不是new