Я не новичок, но Javascript все еще часто смущает меня. Может кто-нибудь сказать мне, если то, что я делаю ниже, "хорошо"?
В Electron код шаблона для настройки меню может быть очень длинным. У меня есть несколько меню в многооконном приложении, и я хотел переместить код шаблона меню из main.js
в модуль.
Итак, я создал новый файл:
const MenuTemplates = require("./app/js/menu-templates.js");
и назовите это так:
var mainMenu = Menu.buildFromTemplate(MenuTemplates.getMainMenuFullVersion());`
Вот сокращенная версия шаблона меню:
exports.getTimelineMenuFullVersion = function () {
return [
{
label: global.appName,
submenu: [
{ label: 'About ' + global.appName,
click: () => { showAboutWindow() } },
Вызов функций (например, showAboutWindow()
выдает ошибку - и это меня удивило. Наверное, я думал, что, поскольку MenuTemplates
загружен main.js
, он будет иметь доступ к своим методам.
Для решения этой проблемы я попытался передать this
в качестве контекста:
var mainMenu = Menu.buildFromTemplate(MenuTemplates.getMainMenuFullVersion(this));`
exports.getTimelineMenuFullVersion = function (context) {
return [
{
label: global.appName,
submenu: [
{ label: 'About ' + global.appName,
click: () => { context.showAboutWindow() } },
Это не сработало - теперь я в замешательстве.