Я продолжаю сталкиваться с одной и той же проблемой снова и снова.Я создаю электронное приложение, используя Typescript.У меня есть набор контроллеров для задней части.AppController обладает юрисдикцией в отношении взаимодействия с файловой системой.WindowController обладает юрисдикцией над всеми основными функциональными возможностями окна.Вот упрощенная версия кода:
AppController.ts
export class AppController {
windowCtrl: WindowController
constructor() {
this.windowCtrl = new WindowController(Init Details);
this.windowCtrl.windowEvents.on('window:get-parent-directory',
() => {
console.log('made it here');
});
}
}
WindowController.ts
export class WindowController {
public windowEvents: EventEmitter;
constructor(Init Details) {
this.windowEvents = new EventEmitter();
// this.windowEvents is defined here.
ipcMain.on('get-parent', getParentDirecotry);
}
getParentDirectory() {
this.windowEvents.emit('window:get-parent-directory');
// this.windowEvents is undefined here
}
}
Источник событий windowEvents isобщение между двумя классами с помощью сообщений.Я сделал то же самое с EventEmitters в Angular и прочитал документацию по узлу, чтобы убедиться, что я не допустил глупой ошибки.Я провел немало исследований, но все, что я нашел, это пример того, как люди не инициализировали его в конструкторе.У меня нет выбора, и я не знаю, что мне не хватает.Эта же проблема произошла с экземпляром BrowserWindow от электронов.Я инициализирую его в конструкторе, окно открывается на экране, и когда я пытаюсь вызвать его из функции-члена класса, оно не определено.
Любые идеи?