我想创建商店并将其分配给Ext.grid.Panel
。
在使用initComponent
创建新商店时,在Panel的Ext.create()
中,会返回原型而不是实际对象。
使用过的 ExtJs 版本 4.1.1 ,其中包含ext-dev.js
。
更新
当我包含ext-all-dev.js
时,它正在运行,但当我使用 Sencha Cmd 构建应用程序时,会出现同样的错误。
但是控制台中不会显示任何警告。
这里有什么问题?感谢任何建议,想法..
今天我找到了解决方案,它并不专用于下面列出的任何文件。
app文件夹中的一个文件定义了Ext
命名空间中的商店。
删除文件后,一切都按预期工作。
稍后我第一次使用商店时会遇到Cannot read property 'buffered' of undefined
异常。
尝试访问属性bufferd但原型没有。
serviceStore: constructor
__proto__: TemplateClass
$className: "AP.store.Services"
allowDeselect: true
config: emptyFn
configMap: TemplateClass
initConfigList: Array[0]
initConfigMap: Object
model: "AP.model.Service"
requires: function constructor() {
self: function constructor() {
superclass: TemplateClass
__proto__: TemplateClass
Ext.define('AP.view.ServiceList', {
extend: 'Ext.grid.Panel',
requires: 'AP.store.Services',
hideHeaders: true,
dialogeFilter: null,
allowDeselect: true,
initComponent: function() {
console.log('ServiceList.initComponent()');
var me = this;
this.columns = [{
text: 'Name',
dataIndex: 'name',
flex: 1,
renderer: this.renderServiceCell
}];
//after the Ext.Create the above prototype is in the variable serviceStore
//not the expected object
var serviceStore = Ext.create('AP.store.Services');
Ext.apply(me, {
store: serviceStore
});
this.callParent(arguments);
}, ...
Ext.define('AP.store.Services', {
extend: 'Ext.data.ArrayStore',
requires: 'AP.model.Service',
model: 'AP.model.Service',
allowDeselect: true
});
Ext.define('AP.model.Service', {
extend: 'Ext.data.Model',
fields: ['id', 'name'],
allowDeselect: true
});
我在没有initComponent
函数的情况下通过以声明方式定义存储来尝试它。
但我也得到了例外Cannot read property 'buffered' of undefined
......
Ext.define('AP.view.ServiceList', {
extend: 'Ext.grid.Panel',
alias: 'widget.servicelist',
requires: 'AP.store.Services',
store : 'Services',
columns: [{
text: 'Name',
dataIndex: 'name',
flex: 1,
renderer: this.renderServiceCell
}],
...