Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/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
Javascript Ext JS DisplayField如何更改动态加载的值_Javascript_Jquery_Events_Extjs - Fatal编程技术网

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

Javascript Ext JS DisplayField如何更改动态加载的值,javascript,jquery,events,extjs,Javascript,Jquery,Events,Extjs,我有一个DisplayField,它在程序运行时动态加载。它正在加载格式为“Ymd”(不带分隔符)的日期值,我想要的是在加载后将日期的格式更改为“d.m.Y” 现在,我有了一个基本的DisplayField类,并在我的程序中对其进行了扩展。我想用基类上的事件格式化该值。我能够用change event格式化该值,但它会导致另一个change event,如此类推,然后进入循环。我使用了另一个计数器变量来防止循环,但是有没有其他更干净的方法呢 我的显示字段: Ext.define('MyDispl

我有一个DisplayField,它在程序运行时动态加载。它正在加载格式为“Ymd”(不带分隔符)的日期值,我想要的是在加载后将日期的格式更改为“d.m.Y”

现在,我有了一个基本的DisplayField类,并在我的程序中对其进行了扩展。我想用基类上的事件格式化该值。我能够用change event格式化该值,但它会导致另一个change event,如此类推,然后进入循环。我使用了另一个计数器变量来防止循环,但是有没有其他更干净的方法呢

我的显示字段:

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));
                }
            }
        }
    });
}
}))

尝试使用,它应该绕过更改检测