扩展Ext.Toolbar.TextItem时,Ext JS奇怪的行为

时间:2012-06-14 08:24:57

标签: extjs extjs4.1

我正在尝试扩展Ext.Toolbar.TextItem来创建一个简单的时钟。 这样做的目的是能够在我的应用程序中向状态栏添加时钟。 我的扩展课程如下:

Ext.define('Urlopy.Components.TimeDisplay', {
    extend : 'Ext.Toolbar.TextItem',
    initComponent : function() {
        var me = this;

        var dt = new Date();

        Ext.defer(this.onUpdate, 240, this);

        Ext.apply(me, {
            text : Ext.Date.format(dt, "Y-m-d H:i:s")
        });
        delete dt;
        this.callParent(arguments);
    },

    onUpdate : function(obj) {
        var dt = new Date();
        this.setText(Ext.Date.format(dt, "Y-m-d H:i:s"));
        delete dt;
        Ext.defer(this.onUpdate, 240, this);
    }
});

我不确定我是否这样做,它可以正常工作,直到我尝试折叠面板。我的布局基于Ext.container.Viewport。

这是我收到的错误:http://vimeo.com/43978383

我不知道出了什么问题:(

欢迎任何帮助!

更新

这是我更新的组件:

Ext.define('Urlopy.Components.TimeDisplay', {
    extend : 'Ext.Toolbar.TextItem',
    initComponent : function() {
        this.callParent(arguments);
        //this.setText(Ext.Date.format(new Date(), "Y-m-d H:i:s"));
        Ext.defer(this.onUpdate, 240, this);
    },
    onUpdate : function(obj) {
        //this.setText(Ext.Date.format(new Date(), "Y-m-d H:i:s"));
        Ext.defer(this.onUpdate, 240, this);
    }
});

这现在有效,但是当我取消注释负责更新文本的2行所有崩溃时:/

我收到此错误

  

el未定义
  var id = el.id,

1 个答案:

答案 0 :(得分:0)

请你试试看,告诉我们它是否还会崩溃?

    Ext.define('Urlopy.Components.TimeDisplay', {
        extend : 'Ext.Toolbar.TextItem',
        initComponent : function() {
            this.callParent(arguments);
            Ext.defer(this.onUpdate, 240, this);
        },
        onUpdate : function(obj) {
            console.log('tock');
            Ext.defer(this.onUpdate, 240, this);
        }
    });