0
我有一個dojo
類,使用dojo/_base/declare
創建,其中包括onClickHandler
。該處理程序由dijit/form/Button
用於處理類中存儲的數據。我需要處理程序能夠引用觸發事件的Button
和處理程序所屬類的實例。具有多個上下文的dojo功能
例如,下面是從類的處理函數的第一部分:
drawToolClick : function(evt) {
this.drawingtoolbar.deactivate(); // Here `this` should represent the instance of my class
var parent = this.getParent(); // Here `this` should represent the button that was clicked
我知道,我顯然不能用this
同時代表,但是當我使用dojo/_base/lang
到hitch
我的課實例的功能,我不知道哪個按鈕被點擊(我有多個按鈕使用相同的處理程序,因爲它們代表enum
)。如果我忽略了被點擊的按鈕,但我不知道如何獲取處理程序所屬的類的實例。
有沒有更好的方法來做到這一點?
這個班的目的是什麼?如果它是一個UI類,那麼你可以*子類*'Button'而不是?如果它是* model *數據,那麼你確定一個點擊處理程序應該附加到它,因爲點擊處理程序是UI。 – 2013-04-03 21:52:06
這個類基本上是我最初用非AMD風格編寫的所有函數和變量,我已經通過將它包裝到類中轉換爲AMD。我不會說它遵循任何特定模式,旨在從功能(即MVC)中分離出UI和數據。我的應用程序是一個Web映射應用程序,所以這個類代表了使用我正在使用的映射API所需的所有代碼。這就是爲什麼我在這個類中放置了'onclick'處理程序,因爲處理程序中的代碼處理地圖。 – Brian 2013-04-04 16:06:28