将动态字符串绑定到函数电子JS

时间:2016-09-12 10:24:44

标签: javascript electron

我正在构建一个包含动态项目的托盘菜单,这是我成功完成的。唯一的问题是我无法为每个项目设置动态点击事件。我使用 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)。

1 个答案:

答案 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