Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 如何在Sencha Touch中覆盖分机日期_Date_Sencha Touch_Overriding_Special Characters - Fatal编程技术网

Date 如何在Sencha Touch中覆盖分机日期

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(

在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(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;
}