2013-03-05 54 views
0

我目前正試圖模仿enyo.Popup的行爲。我看着sourcegithub,但很難理解它。如何模仿enyo.Popup行爲

特別是我有麻煩的代碼:

handlers: { 
    //... 
    onRequestShow: "requestShow", 
    onRequestHide: "requestHide" 
}, 

//* @public 
events: { 
    //* Fires after the popup is shown. 
    onShow: "", 
    //* Fires after the popup is hidden. 
    onHide: "" 
}, 

還有一些別的地方的代碼,也有對this.show()電話。

首先,我沒有找到this.show()的聲明。其次,雖然我認爲它必須分別位於this.show()this.hide()之內,onShowonHide事件的名稱分別在哪裏?

最後,我定義了一種我自己,也包含上面的代碼。但儘管show()hide()方法正在運行,我自己的requestShow()requestHide()方法未被調用。

我錯過了什麼?

回答

2

首先,show是enyo.Control聲明的函數:http://enyojs.com/api/#enyo.Control::show

onShowonHide是可以通過彈出窗口的所有者訂閱事件(因此,他們在事件聲明塊)。它們在showingChanged函數中被調用。調用事件的方法是do {EventNameWithoutOn}。在這種情況下:doShow

檢查上述文件上的事件:(!或者,你可以買我的漂亮的Enyo書http://roysutton.com/2013/01/31/print-book-now-available/https://github.com/enyojs/enyo/wiki/Event-Handling

處理程序塊是用於控制訂閱消息時(或其子女)產生辦法。話雖如此,我在代碼中看不到任何會產生onRequestHide事件的地方。

我希望有幫助!