2

ステータスバーにタイマーを設定しました。しかし問題は、ウィンドウを閉じるとエラーが発生することです。extjs 4でエラーなしでウィンドウを閉じるにはどうすればよいですか........

これが私の見解です。できます

    var  clock = Ext.create('Ext.toolbar.TextItem', { text: Ext.Date.format(new Date(), 'g:i:s A')}),   


    this. bbar= Ext.create('Ext.ux.StatusBar', {
        id: 'win-statusbar',
        topBorder:false,
        text:'Status',
        defaultIconCls: 'info',
        defaultText: 'Status',
        items: [clock]
        });

     this.listeners= {
        render: {
            fn: function(){                 
            var task= Ext.TaskManager.start({
                 run: function(){
                     Ext.fly(clock.getEl()).update(Ext.Date.format(new Date(), 'g:i:s A'));
                 },
                 interval: 1000
             });
           }
        }
    };

コントローラ。ウィンドウを閉じる前に「Ext.TaskManager.stop()」をここに設定する方法。

doClose: function (button) {
    var win = button.up('window');
    win.close();
}

エラー

Ext.fly(clock.getEl()) is null 
4

2 に答える 2

4

ついに私はそれを解決します。閉じるボタンをクリックして操作を実行するだけです。

 this.listeners= {
        render: {
            fn: function(){                 
            var task= Ext.TaskManager.start({
                 run: function(){
                     Ext.fly(clock.getEl()).update(Ext.Date.format(new Date(), 'g:i:s A'));
                 },
                 interval: 1000
             });

             Ext.get('stop').on('click', function() {  //by close button id= 'stop'
                  Ext.TaskManager.stop(task);            
             }); 
           }
        }
    };
于 2012-12-04T11:07:45.440 に答える
3

これはうまくいくでしょう。

this.listeners= {
        render: {
            fn: function(){                 
            var task= Ext.TaskManager.start({
                 run: function(){
                     if(!Ext.fly(clock.getEl()))
                        Ext.TaskManager.stop(task);
                     Ext.fly(clock.getEl()).update(Ext.Date.format(new Date(), 'g:i:s A'));
                 },
                 interval: 1000
             });
           }
        }
    };
于 2012-12-03T19:34:50.090 に答える