Я являюсь новичком в dojo, и я пытаюсь переместить часть кода интерфейса в класс, чтобы сохранить методы из моего основного файла.Classy Dojo - Внутренние вызовы методов
Моя проблема. Я не могу использовать внутренние функции класса как часть других функций.
После того как я создать объект интерфейса во внешнем файле, как показано на рисунке, я могу успешно:
appInterface = new (interface)
appInterface.showGraphWindow()
appInterface.hideGraphWindow()
Однако я не могу работать, как использовать эти функции внутри функции toggleGraphWindow. (Из контекста?)
Если я пытаюсь позвонить:
on(registry.byId("graphBtn"),"click", appInterface.toggleGraphWindow);
Он падает на линии:
this.showGraphWindow()
или
this.hideGraphWindow()
С: «Неопределенное является не является функцией "
Как закодировать функцию toggleGraphWindow?
Iterface.js
define([
"dojo/_base/declare",
"dojo/on",
"dijit/registry"
],
function(
declare,
on,
registry
){
return declare (null, {
hideGraphWindow : function() {
dijit.byId("graphWindowMain").domNode.style.display = 'none';
dijit.byId("applicationWindow").resize();
},
showGraphWindow : function() {
dijit.byId("graphWindowMain").domNode.style.display = 'block';
dijit.byId("applicationWindow").resize();
},
toggleGraphWindow : function(){
if (dijit.byId("graphBtn").checked == true)
{this.showGraphWindow()}
else
{this.hideGraphWindow()}
}
});
});
Я думаю, что настоящий вопрос здесь может быть связан с *, что вызывает toggleGraphWindow *? Вы не показываете, какой код его вызывает. 'hitch' в том, как вы его используете здесь, абсолютно ничего не делает в двух смыслах: 1,' hitch' возвращает функцию, поэтому вы генерируете функцию и никогда не вызываете ее, а 2, если у вас есть контекст проблема где-то, вызов 'hitch' здесь слишком поздно, чтобы решить ее, потому что« это »уже не так, что восходит к моему первоначальному вопросу. –