Ext JS DisplayField如何更改动态加载的值

时间:2013-11-20 08:42:49

标签: javascript jquery events extjs

我有这个DisplayField在程序运行时动态加载。它使用格式' Ymd'(没有分隔符)加载日期值,我想要的是将日期格式更改为' d.m.Y'在它加载之后。

现在,我有一个基础DisplayField类,我在我的程序中扩展它。我想在我的基类上使用事件格式化值。我能够使用change事件格式化值,但它会导致另一个更改事件,然后进入循环。我使用另一个计数器变量来阻止循环但是还有另一种方法可以更清洁地进行循环吗?

我的显示字段:

Ext.define('MyDisplayField', {
extend: 'Ext.form.DisplayField',
enableDateFormat: false,
dateFormat: GlobalConfigProperties.dateFormat, 
counter : 0,
initComponent: function() {
    var me = this;

    Ext.applyIf(me, {
        listeners: {
            change: function(field, newValue, oldValue, eOpts) {
                if(field.enableDateFormat && field.counter == 0) {
                    field.counter = 1;
                    var date = Ext.Date.parse(newValue, 'Ymd');
                    field.setValue(Ext.Date.format(date, field.dateFormat));
                }
            }
        }
    });
}

});

1 个答案:

答案 0 :(得分:0)

尝试使用setRawValue,它应绕过变更检测。