gpt4 book ai didi

angularjs - 在 Electron 应用程序中单击菜单更改 AngularJS 状态

转载 作者:行者123 更新时间:2023-12-04 18:37:09 25 4
gpt4 key购买 nike

我正在尝试使用带有菜单项的 AngularJS 制作一个 Electron 应用程序。我可以在主 Electron javascript 文件中定义这个菜单项,如下所示:

var Menu = require('menu');
var menu = new Menu();
var tpl = [
{
label: 'Actions',
submenu: [
{
label: 'Xxxx',
click: function() { /* I want to change the state here */ }
}
]
}

];
menu = Menu.buildFromTemplate( tpl );
Menu.setApplicationMenu(menu);

但是我不知道当用户单击子菜单时如何更改 AngularJS 的状态(我正在使用 ui-router)。

此外,我正在尝试根据应用程序中的 Controller (或状态)更改菜单项。我知道我不能在 Angular 代码中执行 require('menu') ,所以如何更改 Controller 中的菜单项?

谢谢

最佳答案

我要回答我自己的问题,我已经找到了解决方案。

remote模块我可以将web进程与主进程通信并调用主进程对象的方法。因此,在 AngularJS 应用程序的主 Controller 中,我可以执行以下操作:

.controller('AppController', function ($scope, $rootScope, $state,  $http, $location) {
$rootScope.remote = require('remote');

var Menu = $rootScope.remote.require('menu');
var App = $rootScope.remote.require('app');

var menu = new Menu();
var tpl = [
{
label: 'Actions',
submenu: [
{
label: 'GoPage',
click: function() {

$state.go('samepage');

}
},
{
label: 'Quit',
click: function() { App.quit(); },
accelerator: 'Command+Q'
}
]
}

];
menu = Menu.buildFromTemplate( tpl );
Menu.setApplicationMenu(menu);

})

通过这种方式,我可以在单击菜单项时调用 AngularJS 函数,并根据应用程序中的 Controller 更改菜单项。

关于angularjs - 在 Electron 应用程序中单击菜单更改 AngularJS 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33020900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com