I am using ExtJS4 with Java servlets. I am following the MVC architecture for ExtJS. I am trying a simple example of displaying a border layout but it doesnt work and I get the following error in ext-all.js in the javascript console:
Uncaught TypeError: Object [object Object] has no method 'onAdded'
Here is my code:
app.js
Ext.Loader.setConfig({
enabled : true
});
Ext.application({
name : 'IN',
appFolder : 'app',
controllers : [ 'Items' ],
launch : function() {
console.log('in LAUNCH-appjs');
Ext.create('Ext.container.Viewport', {
items : [ {
xtype : 'borderlyt'
} ]
});
}
});
Items.js (controller)
Ext.define('IN.controller.Items', {
extend : 'Ext.app.Controller',
views : [ 'item.Border' ],
init : function() {
this.control({
'viewport > panel' : {
render : this.onPanelRendered
}
});
},
onPanelRendered : function() {
console.log('The panel was rendered');
}
});
Border.js (view)
Ext.define('IN.view.item.Border',{extend : 'Ext.layout.container.Border',
alias : 'widget.borderlyt',
title : 'Border layout' ,
autoShow : true,
renderTo : Ext.getBody(),
defaults : {
split : true,
layout : 'border',
autoScroll : true,
height : 800,
width : 500
},
items : [ {
region : 'north',
html : "Header here..",
id : 'mainHeader'
}, {
region : 'west',
width : 140,
html : "Its West..",
}, {
region : 'south',
html : "This is my temp footer content",
height : 30,
margins : '0 5 5 5',
bodyPadding : 2,
id : 'mainFooter'
}, {
id : 'mainContent',
collapsible : false,
region : 'center',
margins : '5',
border : true,
} ]
});
The folder structure for the Webcontent is as follows:
- WebContent
- app
- controller
- Items.js
- model
- store
- view
- item
- Border.js
- item
- controller
- ext_js
- resources
- src
- ext_all.js
- index.html
- app.js
- app
Can someone help me resolve this error?
Thanks in advance
sencha generate app ...? If not, and if you are on the inception of the project, consider doing so. Sencha Cmd does a lot of dirty work for you. - Saki