【发布时间】:2013-10-16 07:47:17
【问题描述】:
在使用 Dojo/_base/declare 创建的 Dojo 类类对象时,我遇到了一些概念问题。
我创建了以下模块:
define(["dojo/_base/declare", ....], function(declare,....){
return declare('my.widget', null ,function(..){
startup: function() {
....
new Button({onClick: this.newItem}, newButtonNode)
},
newItem: function() {
this.openDialog({}, this.saveItemCallback)
},
openDialog: function(item,callback){...},
saveItemCallback: function(item){....}
})
})
问题是,函数newItem 不起作用,因为当它通过按钮单击调用时,this 指向 Button 小部件,而不是“my.widget”实例。
我很困惑。如何引用“my.widget”实例?在我读过的 Dojo 类中,当前实例在 this 下可用。
【问题讨论】:
-
对于
openDialog函数,请记住,有时它比return aPromise更简洁,而不是需要回调作为参数。
标签: javascript dojo declare