Reputation: 1
In a Sencha 2.3 installation, I'm trying to override the Ext.Date class to implement localized handling of Norwegian dates. I've created a Ext.ux.Date class and listed it under requires in the app.js file. But my class is never instantiated?
Ext.define('Ext.ux.Date', {
override: 'Ext.Date',
requires: ['Ext.ux.Date'],
constructor: function (config){
this.callParent(arguments);
},
dayNames: [
'S\u00f8ndag',
'Mandag',
'Tirsdag',
'Onsdag',
'Torsdag',
'Fredag',
'L\u00f8rdag'
],
monthNames : [
'Januar',
'Februar',
'Mars',
'April',
'Mai',
'Juni',
'Juli',
'August',
'September',
'Oktober',
'November',
'Desember'
]
});
When I check the console, there is an error in the method Ext.ClassManager.createOverride(). The error message is: "Uncaught TypeError: Object[object Object] has no method 'override'" in the "overridenClass.override(data);" line...
createOverride: function(className, data, createdFn) {
var overriddenClassName = data.override,
requires = Ext.Array.from(data.requires);
delete data.override;
delete data.requires;
this.existCache[className] = true;
Ext.require(requires, function() {
// Override the target class right after it's created
this.onCreated(function() {
var overridenClass = this.get(overriddenClassName);
if (overridenClass.singleton) {
overridenClass.self.override(data);
}
else {
overridenClass.override(data);
}
if (createdFn) {
createdFn.call(overridenClass, overridenClass);
}
this.triggerCreated(className);
}, this, overriddenClassName);
}, this);
return this;
}
Upvotes: 0
Views: 1373
Reputation: 744
There is a specific set of steps that you need to follow for creating an override for a class. This article explains the complete process, with and without using Sencha Architect
Upvotes: 0
Reputation: 168
1) You should not put your classes undex Ext.
namespace (use your own namespace)
2) Check the require statement, it may be causing some problems as the class requires itself
3) Try to use just extend
instead of override
4) Check the Sencha docs on class system
Upvotes: 1