dojo - lang.hitch for widget function

时间:2013-05-02 21:59:53

标签: javascript javascript-events dojo widget scope

我有一个自定义小部件,如果我能以特定方式使用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

1 个答案:

答案 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)
    })

});

是你想要的。我相信当该函数被绑定时,它将是执行声明函数的范围,而不是小部件的实例。