Date 如何在Sencha Touch中覆盖分机日期
在Sencha 2.3安装中,我试图重写Ext.Date类,以实现挪威日期的本地化处理。我创建了一个Ext.ux.Date类,并将其列在app.js文件的requires下。 但是我的类从来没有被实例化过Date 如何在Sencha Touch中覆盖分机日期,date,sencha-touch,overriding,special-characters,Date,Sencha Touch,Overriding,Special Characters,在Sencha 2.3安装中,我试图重写Ext.Date类,以实现挪威日期的本地化处理。我创建了一个Ext.ux.Date类,并将其列在app.js文件的requires下。 但是我的类从来没有被实例化过 Ext.define('Ext.ux.Date', { override: 'Ext.Date', requires: ['Ext.ux.Date'], constructor: function (config){ this.callParent(
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'
]
});
当我检查控制台时,Ext.ClassManager.createOverride()方法中有一个错误。错误消息是:“OverrideClass.override(data);”行中的“UncaughtTypeError:Object[Object Object]没有方法“override””
1) 您不应该将类放在命名空间下(使用您自己的命名空间)
2) 检查require语句,它可能会导致类本身需要的一些问题
3) 尝试仅使用extend
而不是override
4) 检查为类创建重写需要遵循一组特定的步骤。文章解释了使用和不使用Sencha Architect的完整过程
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;
}