我正在尝试在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();
}
});
提前谢谢。
答案 0 :(得分:0)
可能会出现问题,因为您在类定义中使用using
而不是requires
。这就是当您尝试创建实例时未加载Ext.ux.ProgressBarPager
的原因。
Ext.create('Ext.ux.ProgressBarPager')
正在运行(如commen中所述),因为它能够按需加载类,这就是为什么最好使用Ext.create
而不是new
。