我是 Ext 库的初学者,我正在尝试扩展一个网格面板并从我的一个新课程记录中引用它的存储:
Ext.define('App.ui.CategoryGridPanel', {
extend : 'Ext.grid.Panel',
initComponent : function() {
var storeToUse = this.store;
if (storeToUse == null) {
storeToUse = Ext.data.StoreManager.lookup(StoreIDs.CategoryStore);
}
this.categoryRowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
clicksToEdit : 2,
store : storeToUse,
listeners : {
edit : function(editor, e) {
this.store.sync();
}
}
});
Ext.apply(this, {
store : storeToUse,
height : 400,
width : 300,
plugins : [ this.categoryRowEditing ],
columns : [ {
header : 'Description',
dataIndex : 'description',
flex : 1,
sortable : true,
editor : 'textfield'
} ],
tbar : [ {
xtype : 'button',
text : 'New',
handler : this.insertNewCategory
} ]
});
this.callParent(arguments);
},
/**
* Add new Category to grid.
*/
insertNewCategory : function() {
var category = Ext.create(ModelNames.Category, {
description : ''
});
this.store.insert(0, category);
this.categoryRowEditing.startEdit(0, 0);
}
});
方法inserNewCategory 总是抛出cannot call insert of undefined 在发出一些警报后我发现this.store 返回null。我检查了 Ext 示例代码,但我没有做任何不同的事情。
请帮忙 :(