2013-03-05 58 views
2

我無法在「Mehotd」上註冊任何事件。無法調用「on」來綁定方法

遺漏的類型錯誤:無法調用未定義

Ext.define('faragoo.view.Main', {

extend: 'Ext.Container', 
alias: 'widget.stream', 
xtype: 'stream', 
id : 'stream', 
requires: [ 
    'Ext.TitleBar', 
    'Ext.form.Panel' 
], 

initialize: function() { 

    this.on('afterrender', function() { alert('rendered'); }); 

} 

}

'上' 的方法和這個簡單的例子不工作也:

Ext.Viewport.on('orientationchange', function() { console.log("orientationchange"); }, this, {buffer: 50 });

同樣的錯誤:-(

+0

似乎是正確的我。你是否在控制檯中嘗試了第二個例子? – 2013-03-05 15:11:24

回答

1

This guide解釋瞭如何正確添加事件到組件。

綁定創建組件後的事件:

var myButton = Ext.Viewport.add({ 
    xtype: 'button', 
    text: 'Click me' 
}); 

myButton.on('tap', function() { 
    alert("Event listener attached by .on"); 
}); 

或事件與使用監聽器的配置綁定:

Ext.Viewport.add({ 
    xtype: 'button', 
    text: 'My Button', 
    listeners: { 
     tap: function() { 
      alert("You tapped me"); 
     } 
    } 
}); 
+0

如果OP在他的函數中調用'callParent()',那麼OP的方法也是正確的 – 2013-03-05 15:10:48

+0

,的確如此。 – A1rPun 2013-03-05 15:17:21

+1

這就是我認爲的第一個,但我沒有調用callParent()嘗試,它仍然工作。但他的第二個例子仍然應該工作。 – 2013-03-05 15:52:54