У меня возникла концептуальная проблема с использованием объектов класса Dojo, созданных с помощью dojo/_base/declare.
Я создал следующий модуль:
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
имейте в виду, что иногда лучше вернутьPromise
чем требовать обратных вызовов в качестве параметров. - person Darien   schedule 16.10.2013