请你是异教徒我正在学习Ext4。
当我运行下面的代码时,我收到此错误:Uncaught TypeError: Cannot call method 'getCount' of undefined
。当我在NS.view.ImplementationStatus.Legend中注释掉代码:list.show()
时,错误消失了。所以我认为这与此有关,但我真的不明白这会来自哪里。
Ext.define('NS.controller.ImplementationStatuses', {
extend: 'Ext.app.Controller',
stores: ['ImplementationStatuses'],
models: ['ImplementationStatus'],
views: ['ImplementationStatus.Legend'],
init: function() {
var view = Ext.widget('statusLegend');
}
});
Ext.define('NS.view.ImplementationStatus.Legend', {
extend: 'Ext.window.Window',
alias : 'widget.statusLegend',
views: ['ImplementationStatus.List'],
initComponent: function() {
console.log("Initializing NS.view.ImplementationStatus.Legend");
// This creates the list of statuses
var list = Ext.create('NS.view.ImplementationStatus.List', {});
list.show();
// Define the list of items
this.items = [list];
}
});
Ext.define('NS.view.ImplementationStatus.List', {
extend: 'Ext.panel.Panel',
alias : 'widget.statusList',
initComponent: function() {
console.log("Initializing NS.view.ImplementationStatus.List");
}
});
答案 0 :(得分:2)
扩展Ext Component类的推荐方法是使用initComponent函数,但最后需要调用this.callParent(arguments);
您可以在指南中的所有视图中看到此模式:http://docs.sencha.com/ext-js/4-0/#!/guide/application_architecture
答案 1 :(得分:1)
首先,当您为init,initComponent等方法创建覆盖时,还必须从原始类调用方法。例如:
Ext.window.Window.prototype.initComponent.apply(this, arguments);
完成方法后,错误不再显示。