2012-06-14 4 views
0

Я пытаюсь расширить Ext.Toolbar.TextItem для создания простых часов. Целью этого является возможность добавления часов в строку состояния в моем приложении. Мой расширенный класс выглядит следующим образом:Ext JS странное поведение при расширении 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

Я не знаю, что это неправильно :(

Любая помощь приветствуется

UPDATE

Это мой обновленный компонент :

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 строки, отвечающие за обновление текста все аварии:/

Я получаю эту ошибку

эль неопределен
вар ID = el.id,

+0

Пробуйте отладки с использованием Firefox или хрома. это поможет вам лучше. –

+0

@AbdelOlakara Я пробовал, но не повезло, не знаю, что происходит. Не могли бы вы мне помочь: http://stackoverflow.com/questions/11030477/ext-js-statusbar-with-clock, в основном то же самое, что и другой подход. – Misiu

+0

Не могли бы вы заменить прокомментированные строки на console.log (this.rendered)? И расскажите, что происходит? – Izhaki

ответ

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

Все еще я получаю странное поведение. Я уточню свой вопрос. – Misiu

+0

И если вы замените console.log ('tock') на console.log (это), что произойдет? – Izhaki

+0

Он работает, в firebug он бросает объект и все свойства. Похоже, я получаю ошибку только при обновлении таймера. – Misiu