2013-03-05 61 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事件的地方。

我希望有帮助!