我有一个自定义小部件,如果我能以特定方式使用lang.hitch
,我很好奇。这是场景:
假设我有一个包含Button
的自定义小部件。 Button
需要附加到其onClick
事件的函数。所以,在我的模板中我有:
<button data-dojo-type="dijit/form/Button" data-dojo-attach-event="onClick : _onButtonClick" />
然后,在我的小部件.js
文件中,我有:
_onButtonClick : function(evt) {
//do something here that needs the scope of my widget (this)
}
我知道我可以从我的模板中移除data-dojo-attach-event
并在dojo.connect
中使用lang.hitch
postCreate
,但我想知道我是否可以简单地转换{ {1}}对此有用:
_onButtonClick
答案 0 :(得分:1)
data-dojo-attach-event
会自动使this
的范围成为父窗口小部件。
我不是百分百肯定,但我不认为代码段中this
的上下文
声明([/ DEPS / {
_onButtonClick : lang.hitch(this, function(evt) {
//do something here that needs the scope of my widget (this)
})
});
是你想要的。我相信当该函数被绑定时,它将是执行声明函数的范围,而不是小部件的实例。