我正在构建一个包含动态项目的托盘菜单,这是我成功完成的。唯一的问题是我无法为每个项目设置动态点击事件。我使用 ShellJS 来运行命令。以下是我的代码示例:
var menu = [];
for(index in file) {
menu.push(
{
label: file[index]['name'],
click: function()
{
exec('cd ' + file[index]['path'], function(code, stdout, stderr) {
console.log('Exit code:', code);
console.log('Program output:', stdout);
console.log('Program stderr:', stderr);
});
}
}, //SampleCode
我的菜单项已成功生成,只有问题在于它使用的最后一个值"文件[索引] ['路径']"假设最后一个[index]值是[3],只要有一个click事件,它就使用了file [3] [' path']的值,如何将值绑定到函数以便点击event为单击的特定菜单项使用正确的值(filePath)。
答案 0 :(得分:1)
我的更新代码:
var menu = [];
for(index in file) {
menu.push(
{
label: file[index]['name'],
id: box[index]['path'], //**Added id parameter**
click: function(currentItem) {
console.log(currentItem.id)
// When click event is triggered it sends
// the current Menu Item as Object
// From that object I can access the 'id'
// example: currentItem.label will give the current items label.
}
}, //Sample Code