Extjs覆盖Field转换方法不起作用

时间:2017-06-25 13:55:50

标签: extjs extjs6

我们正在处理服务器端的特殊Date对象。所以json返回一个对象。为此,我们想要覆盖Ext.data.field.Date

的字段定义
Ext.define('Ext.overrides.data.field.Date', {
    override: 'Ext.data.field.Date',
    convert: function(v) {
        // Do something with v and return it
        console.log('Process value');
        return v;
    }
});

永远不会触发转换方法。使用模型内部的convert方法配置字段并调用该方法。

我们最终得到了以下“黑客”,但不确定为什么“正常覆盖”不起作用。也许有人可以对这个问题有所了解。

Ext.define('Ext.overrides.data.field.Date', {
    override: 'Ext.data.field.Date',
    constructor: function(config) {
        var me = this;
        this.convert = config.convert || function(v) {
            // Do something with v and return it
            console.log('Process value');
            return v;
        };
        this.callParent(arguments);
    }
});

1 个答案:

答案 0 :(得分:0)

@Alexander:通过我的代码发现了该类的第二次覆盖。所以一切正常,只要确保你一次只有一个覆盖或确保它们按正确的顺序加载。